Topic "Please add a large buffer between source and target"

Author Message


Hello !
I had a task to copy few terabytes of data from one NAS in my local home net to another NAS in the same net. These NASes (MyBook World Edition II) have very slow CPU, so best way to copy is to use FTP. I am able to download files from the NAS at 35MB/s in samba and upload at 21MB/s using FTP.

so ...
1. if I download file from the NAS to my local hard drive, i have 35MB/s in Vista explorer.
2. if I upload file from the local drive to a NAS using FTP & WinSCP, I have 21mb/s
3. but if I upload in the WinSCP from the windows share to the FTP directly, I have 5-7 MB/s only and very unstable.

I downloaded sources of the WinSCP and found that main copy loop works like this:
a) read 16k from CFile
b) send to socket
c) repeat

this should work fast if CFile is a local file, the delay is slow. But in case of remote share, this depends on the internal Windows read-ahead for remote files.

So, request is:
Modify class CFileFix in the filezilla\stdafx.h to be 2-threaded. Main thread should read available data, another thread should read ahead into the large (several megabytes) buffer.

I believe this is not heavy task Smile

Mikhail Levashov
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 24759
Location: Prague, Czechia
Thanks for your post. This request has been added to tracker.
Martin Prikryl

You can post new topics in this forum

Search Site

What is WinSCP?

It is award-winning SFTP client, SCP client, FTPS client and FTP client integrated into one software program for file transfer to FTP server or secure SFTP server. [More]

And it's free!


About donations

$9   $19   $49   $99

About donations


WinSCP Privacy Policy

WinSCP License