I'm bascially just wondering if there's any way to optimize the performance as it sometimes eats up more CPU than I would have thought it should
What amount of CPU usage were you expecting, and why? Generally, it is a good thing that no one tries to pre-emptively throttle your program - that way when you need to use the maximum available system resources you can (more or less). The OS is usually happy for your game to soak up any remaining CPU time. If your game knows that it doesn't need to use all the CPU, it can tell the OS this by issuing blocking calls.
I'm not overly familar with SFML, but some places to start include:
SetFramerateLimit - does reducing this value to 60 change anything?
Have you tried UseVerticalSync()?
Reducing the value to 60 doesn't change much in terms of CPU usage and I have used vertical sync with the same result.
The amount of CPU it's using is a similar amount to the amount that World of Warcraft runs on the same computer!! My CPU meter basically goes from 0% to 12-17%.
Anyway, if it's not something to worry too much about then I won't. I'm still new to low level programming and am trying to learn best practices.