Which version of Qt are both of you guys using?
Which version of Qt are both of you guys using?
Qt 4.8.2 and Qt 5.0.0Beta1 on Linux talking to a pure-ftpd server on Linux.
I just tried Qt 4.8.0 and Qt 4.7.4 on Windows XP (in a VM on Linux, same server) with the result of about 2100 ms for the 10MB file, 20500ms for the 100MB file. FileZilla on the same machine manages to match Linux; a shade under 10 seconds for the 100MB file. On Windows 7 the performance is even worse, although I cannot see an obvious cause.
Looking with Wireshark: both transfers from Windows are in FTP passive mode. The data packets are the same size. The pattern of outgoing data an incoming ACK packets is quite different, with Qt bunching outgoing packets more than Filezilla. QTBUG-16359 may be pertinent
I also have tried with Qt 4.8.2, 4.7.4 on Windows. The transfer speed is very slow. We are also targeting to use the static libs of Qt. But firstly the transfer rate should fair enough to handle atleast 500 MB of file.
Last edited by darshan.hardas; 4th October 2012 at 06:19.
Darshan
To be clear, my code example is markedly slower on Windows too. I tried 4.7.4 and 4.8.0 using MingW. I have not tried MSVC to see it it is a C++ runtime issue.
No, granted. But I am working across a LAN, and the OP is not.
So, the "optimum" is about 3 times faster than the Qt program (500 vs 150 KB/s). This is not that dissimilar the slowdown factor I saw on a LAN connection with XP. Windows 7 was worse again.Originally Posted by Darshan
I have used the code-as is posted. Also, have implemented the logic using QFtp.
We are testing the speed using machine instances created on cloud (Amazon EC2). The network bandwidth is very high on both the instances i.e. client and server.
Darshan
Finally I have to try using the sockets QTcpSocket and have to implemented the whole FTP RFC to transfer the file. I have managed to read the file in the separate thread and storing it in buffer to be transfered onto the connection.
This methodology have increased the upload speed and now I can transfer the 100 MB is 3-4 minutes.
Thank you all for giving your inputs.
Darshan
This sounds like a lot of work, can we do something about this?
Hi, i have used your code, and get this error:
[root@mcapro Upload]# ./Upload
QIODevice::read: device not open
Uploaded 0 of 0
Finished 201
The file exists and have size
The error message is clear, the file is not open. If you are using a relative path to open the file then it is likely that the current working directory of the process is not what you think it is.
Bookmarks