for the beginning probably not.... unless you want to space out when surfaces are created which is what fgui mostly relies on to save a huge amount of performance the drawback being that it's all initialized in the beginning thus causing a huge slowdown, you could possibly put it in the preload
or setup
function respectively so the draw loop isn't further burdening the load for the elements and possible textures to be loaded in for use
additionally there may be a bunch of statements tracking your mouse movement..... causing for it to spike whenever you move your mouse..... the fps graph could also be contributing to this since it may be rendered as a surface but still needs to be updated on the frame change.... to fix this I'm not sure if fgui already uses this but it could check if it's visible or not allowing it to skip any intensive checking for specific elements on the screen at a given time.... that or I'm working on an exporter as well which should allow the game to run at optimal performance without the interpreter slowdown