If you make everything framerate indepedent then you won't need to bother with specifying a rate at all although you still can.
Basically you calculate a frame time scale and all movement, timers etcs when incrementing, decrementing you apply the frame time scale modifier.
An example of this can be seen in the project attached to the posts in the thread on building an old school fps. The "game" will run the same on anywhere from about 15 fps up. Could be made to run the same even lower but I saw no need in doing so. My function to calculate the frame time scale also handles fast hardware by giving time back to the system each frame it can do so.
Anyway if you take this approach then you can just run it wide open at max frame rate in fact feel free to just take my function that calculates the frame time scale if you like.
If not of course that is fine too. But making everything framerate independent is a good way to go for game programming in general although it does mean you are always multiplying by a delta value which adds a bit of overhead in itself and bit of extra code it simplifies the kind of challenge you are looking at currently.
At any rate congrats on figuring out the cause and solving the performance issue!
TI/994a (BASIC) -> C64 (BASIC/PASCAL/ASM/Others) -> Amiga (AMOS/BLITZ/ASM/C/Gamesmith) -> DOS (C/C++/Allegro) -> Windows (C++/C#/Monkey X/GL Basic/Unity/Others)