java ftp限速_为什么Java FTP客户端的传输速率存在很大差异
也許有人可以回答我這個問題.在我最近的工作中,我注意到我的應(yīng)用程序(通過FTP下載更新)在與
Linux一起使用時非常慢.我在Mac上開發(fā)這些東西,所以我之前沒有注意到這個問題,因為Mac OS下的下載速度并不是很低.但是當轉(zhuǎn)向Linux時,應(yīng)用程序表現(xiàn)得非常不同.
FTP服務(wù)器(在Ubuntu服務(wù)器上運行的純FTP)連接到與客戶端相同的LAN,因此不考慮Internet速度問題.由于性能低下,我將Apache FTPClient更改為edtFTPj / Free.差異仍然顯著但可以接受.作為測試用例,我總是下載大小約為30 MB的文件.然后我檢查了ftp服務(wù)器日志以了解傳輸速率.
你自己看.提到的VMWare在Mac上運行.除非另有說明,否則Java是Oracle Java 1.7.
Apache Commons Net 2.3
代碼看起來像這樣
FTPClient ftp = new FTPClient();
ftp.connect("srv0006");
ftp.login("anonymous", "asd");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
File target = new File("/tmp/pub.tar");
FileOutputStream fos = new FileOutputStream(target);
ftp.retrieveFile("/pub.tar", fos);
fos.close();
以下是ftp日志的結(jié)果
Mac OS從IntelliJ Idea開始
downloaded (30452736 bytes, 21200.67KB/sec)
Mac OS從shell開始
downloaded (30452736 bytes, 21471.75KB/sec)
Windows 7(在VMWare中)
downloaded (30452736 bytes, 65243.15KB/sec)
運行Oracle Java的OpenSuse(在VMWare中)
downloaded (30452736 bytes, 5274.56KB/sec)
運行OpenJDK的OpenSuse(在VMWare中)
downloaded (30452736 bytes, 7663.68KB/sec)
Ubuntu 12.04.1 LTS
在與千兆以太網(wǎng)連接的另一臺PC上運行到同一LAN.其他Ubuntu機器的行為方式完全相同.我在20分鐘后退出了轉(zhuǎn)會.查看轉(zhuǎn)移率.
downloaded (7077888 bytes, 6.10KB/sec)
edtFTP4j 2.4.0
在此之后,我轉(zhuǎn)到了edtFTP4j.結(jié)果好多了.
FileTransferClient ftp = new FileTransferClient();
ftp.setRemoteHost("srv0006");
ftp.setUserName("anonymous");
ftp.setPassword("asd");
ftp.connect();
ftp.downloadFile("/tmp/pub.tar", "/pub.tar");
ftp.disconnect();
結(jié)果發(fā)生了顯著變化:
Mac OS從IntelliJ Idea開始
downloaded (30452736 bytes, 109431.60KB/sec)
Mac OS從shell開始
downloaded (30452736 bytes, 110333.66KB/sec)
Windows 7(在VMWare中)
downloaded (30452736 bytes, 91318.64KB/sec)
運行Oracle Java的OpenSuse(在VMWare中)
downloaded (30452736 bytes, 89312.46KB/sec)
運行OpenJDK的OpenSuse(在VMWare中)
downloaded (30452736 bytes, 89041.05KB/sec)
Ubuntu 12.10(在VMWare中)
downloaded (30452736 bytes, 81154.99KB/sec)
Ubuntu 12.04.1 LTS在i5筆記本上運行,Wifi(50 MBit / s)
downloaded (30452736 bytes, 2883.84KB/sec)
Ubuntu 12.04.1 LTS在i5筆記本電腦,千兆以太網(wǎng)上運行
downloaded (30452736 bytes, 93822.44KB/sec)
Ubuntu 12.04.1 LTS
在前面提到的PC上運行(具有6.10 KB /秒tx速率的PC)
downloaded (30452736 bytes, 11633.38KB/sec)
我不明白這一點.誰有線索在這里發(fā)生什么?
再見,托斯滕……
總結(jié)
以上是生活随笔為你收集整理的java ftp限速_为什么Java FTP客户端的传输速率存在很大差异的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode-面试算法经典-Jav
- 下一篇: 权限之浅理解