Using the Debug-mode you can see what takes the most amount of processing time and memory etcetera..
You could (read should) use that to find out what the bottleneck is..
You should be glad it doesn't crash on windows, for that will give you enough time to figure it out..
First thing I would look at is if there aren't objects being created all the time and if the collisionchecks aren't too high.
It could also just be a part of your programming (events) that is taking up a lot of your cpu time.
This is exactly what the debugger is for, debugging..