First of all, you have to tell us whether you are using OpenGL or SFML's graphics module. I assume that the former is the case, since I really can't imagine sfml-graphics running at 4000 FPS
.
If that is the case, you also have to tell us whether you are using any sfml-graphics objects as a convenience in your own code. They all come with their own subtleties.
Finally, without a bit more code, we hardly have an idea of what your code might look like and thus it is hard for us to tell what could possibly be going wrong. It might be a synchronization issue. At such high frame rates, you might be writing into your buffers faster than the GPU can even be finished with them, and it is common for the GPU to just spit out black screens if it doesn't like
something. GPUs work in a highly asynchronous manner, and often they are lagging 3 frames behind the CPU (I've noticed this in every measurement I've ever done). So a call that finishes on the CPU does not mean that its associated command will be finished in nearly the same time on the GPU.