It's all about complexity, the more data in a scene the more work there is to do scan through it during physics simulations as well as drawing it all to screen and the lower the frame rate during playback.
Your biggest culprit is the helmet, with the mirror and subsurf modifier it ends up with 1.4 million vertices. Also a subsurf level of 4 is rather high, unless your right up close you will not tell the difference between level 4 and 2 in the final render, even up close the difference is small.
If I remove the subsurf modifier from the helmet I see the frame rate jump to about 15 fps. With the subsurf level at 3 I see 5 fps and at 2 I see 9 fps.
By removing the collision from the helmet I also see 15fps with the subsurf at level 3.
If you are planning an animation then you might want to create a low poly mesh that sits close to the surface of the shoulders, parent it to the helmet so they move together, disable render visibility and use that for the cloth collision. For a still image just wait for the simulation to play through and do a render.