Some tests on a LAN (server is running OpenSSH 4.5)...
- WinSCP/3.8.2 gets about 2500 KB/s over SCP
- WinSCP/3.8.2 gets about 400 KB/s over SFTP
- SSH.com Client/3.2.9 gets about 600 KB/s over SFTP
- CuteFTPPro/8 gets about 250 KB/s over SFTP
- PuTTY PSFTP/0.56 gets about 330 KB/s over SFTP
- PuTTY PSFTP/0.58 gets about 100 KB/s over SFTP
- PuTTY PSFTP/0.59 gets about 1100 KB/s
1/ The difference between SFTP and SCP was a lot bigger than I had expected.
2/ Between 0.56 and 0.59 of the PuTTY client, the speed went up by 3x (0.58 was unusually slow; I think it's buggy). Still slower than SCP, but much better than any of the other SFTP tests.
3/ According to the changelog for version 6722 of sftp.c in the PuTTY CVS, the the 3x speedup is caused "simply by upping the packet sizes and maximum in-flight packet count."
The WinSCP code and the PuTTY code are so very different that I can't seem to find anything remotely similar; you are much more familiar with your code than I am; are tweaks like this feasible for WinSCP?