You can have an fps reduced by a ratio of up to 1/2.
It's simple: vertical sync will make your fps be an integer fraction of the monitor refresh rate. Let's say this rate is 60, and your raw fps is 50.9, then your fps, once synced will be of 30, a close to 1/2 ratio. And if the raw fps was 29.9, once synced you would get a fps of 60/3. And so on.
To sum up with vertical sync on you can only get an fps of R, R/2, R/3, R/4... where R is the monitor refresh rate (and assuming the raw fps is stable).
In windowed mode, you get no vsync, which explains the difference.
It's simple: vertical sync will make your fps be an integer fraction of the monitor refresh rate. Let's say this rate is 60, and your raw fps is 50.9, then your fps, once synced will be of 30, a close to 1/2 ratio. And if the raw fps was 29.9, once synced you would get a fps of 60/3. And so on.
To sum up with vertical sync on you can only get an fps of R, R/2, R/3, R/4... where R is the monitor refresh rate (and assuming the raw fps is stable).
In windowed mode, you get no vsync, which explains the difference.