java ftp限速_为什么Java FTP客户端的传输速率存在很大差异
也许有人可以回答我这个问题.在我最近的工作中,我注意到我的应用程序(通过FTP下载更新)在与
Linux一起使用时非常慢.我在Mac上开发这些东西,所以我之前没有注意到这个问题,因为Mac OS下的下载速度并不是很低.但是当转向Linux时,应用程序表现得非常不同.
FTP服务器(在Ubuntu服务器上运行的纯FTP)连接到与客户端相同的LAN,因此不考虑Internet速度问题.由于性能低下,我将Apache FTPClient更改为edtFTPj / Free.差异仍然显着但可以接受.作为测试用例,我总是下载大小约为30 MB的文件.然后我检查了ftp服务器日志以了解传输速率.
你自己看.提到的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日志的结果
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
在与千兆以太网连接的另一台PC上运行到同一LAN.其他Ubuntu机器的行为方式完全相同.我在20分钟后退出了转会.查看转移率.
downloaded (7077888 bytes, 6.10KB/sec)
edtFTP4j 2.4.0
在此之后,我转到了edtFTP4j.结果好多了.
FileTransferClient ftp = new FileTransferClient();
ftp.setRemoteHost("srv0006");
ftp.setUserName("anonymous");
ftp.setPassword("asd");
ftp.connect();
ftp.downloadFile("/tmp/pub.tar", "/pub.tar");
ftp.disconnect();
结果发生了显着变化:
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笔记本电脑,千兆以太网上运行
downloaded (30452736 bytes, 93822.44KB/sec)
Ubuntu 12.04.1 LTS
在前面提到的PC上运行(具有6.10 KB /秒tx速率的PC)
downloaded (30452736 bytes, 11633.38KB/sec)
我不明白这一点.谁有线索在这里发生什么?
再见,托斯滕……
java ftp限速_为什么Java FTP客户端的传输速率存在很大差异相关推荐
- java武功秘籍_请问java全套内容都有什么呢?
我整理的Java全套内容学习路线,分为6个阶段(大阶段)第一阶段:java内功心法篇 第二阶段:Java武功秘籍(经典框架) 第三阶段:Java高级功法(主流框架) 第四阶段:Java成神之路 第五阶 ...
- java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...
一.根据题意,填写出空格中的内容 Java平台包括三个技术方向,其中J2ME代表____________.J2SE代表___________.J2EE代表____________.2.面向对象的四大概 ...
- java robot 对象_用Java Robot对象实现服务器屏幕远程监视
用Java Robot对象实现服务器屏幕远程监视 作者:李鲁群 摘要: 有时候,在Java应用程序开发中,如:远程监控或远程教学,常常需要对计算机的屏幕进行截取,由于屏幕截取是比较接近操作系统的操作, ...
- java初学课程_作为java新手应该学习什么课程
照目前IT行业发展趋势,学java的人越来越多,因为java的应用范围广,薪资待遇在IT行业里也是名列前茅,那么,作为java新手应该学习什么课程呢?动力节点java学院的小编来告诉大家新手应该学哪些 ...
- java web源代码_检测Java Web应用程序而无需修改其源代码
java web源代码 与其他系统进行交互时,大多数Java Web应用程序都使用标准Java接口. 诸如Web页面或REST服务器之类的基于HTTP的服务是使用接口javax.servlet.Ser ...
- java开发错误_每个Java开发人员都必须避免的9个安全错误
java开发错误 Checkmarx CxSAST是功能强大的源代码分析(SCA)解决方案,旨在从根本上识别,跟踪和修复技术和逻辑安全漏洞:源代码. 在这里查看 ! 自从1995年中期引入Java以来 ...
- java queue使用_使用Java使用Amazon Simple Queue Service
java queue使用 Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统 ...
- java web服务_将Java服务公开为Web服务
java web服务 本教程解决了开发人员面临的最实际的情况. 大多数时候,我们可能需要将某些现有服务公开为Web服务. 在项目生命周期的不同阶段可能会遇到这种情况. 如果这是初始阶段,那么您几乎是安 ...
- java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)
import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...
最新文章
- PHP学习资源收集~
- #161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件...
- 使用ANY和ALL条件
- 【ubuntu】解决窗口管理器 不支持透明问题(11.04之前版本不支持)
- Redis常用配置参数详解及查看修改命令
- Breadth-first Search(广度优先搜索)专题2
- c语言删除文件remove_Python中的文件和目录操作
- 物联卡与sim卡有什么差别性的不同
- Hicharts实现世界地图思路及踩过的坑(含中文GeoJSON数据集及详细代码)
- 蓝牙CC2540 CC2541常用AT指令集
- sipp uas 脚本
- Python Counter函数
- centos 6.9部署svn服务器和客户端(客户端含windows、linux版本)
- 阿里云盘小白羊版!你值得拥有的一款第三方阿里云盘客户端
- java怎么连发子弹_HTML-坦克大战-完成子弹连发功能(三)
- 怎样进行两台电脑之间的数据传输?
- win11快速启动有必要关闭吗?如何关闭?
- mybais-plus出现Invalid bound statement (not found)的解决方案
- cuug内部oracle视频教程-oracle sql_tune
- 论文分区和影响因子 IF 查询
热门文章
- 如何处理SAP Launchpad上tile打不开的问题
- 如何将windows10的显示字体调大
- SAP S/4HANA的扩展字段的渲染逻辑
- SAP CRM Business Partner API的buffer工作原理
- 【数据库】pymysql数据库事务操作
- php session支持,SESSION支持
- 网页版nfc_苹果5大系统升级新特性浓缩汇总!秋季5G版iPhone稳了
- vue Mutation 必须是同步函数 为什么_Vue 开发必须知道的 36 个技巧「近1W字」
- 微软服务器问题,微软服务器内存溢出问题 | 【韩涛博客】
- python学习-知识点进阶使用(end、while else、range、iter、list的多种遍历方式)