- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java文件传输性能测试
测试结论
Java文件传输的性能可以达到飞鸽的传输性能
通过消息摘要算法保证传输安全不影响传输的性能
文件的传输性能优于文件夹得传输性能,文件夹越多,文件夹包含的文件越多,文件的尺寸约小,传输性能越差。
文件夹传输时,覆盖已存在的文件夹,比重新创建文件夹性能高。
Java文件传输优化事项
在发送端和接收端建立缓冲区能大幅提高传输性能
//发送端建立发送缓冲区
DataOutputStream out=new DataOutputStream(new BufferedOutputStream(socket.getOutputStream(),BUFFER_SIZE));
//接收端建立接收缓冲区
DataInputStream in = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream(),BUFFER_SIZE));
BUFFER_SIZE为缓冲区的大小,BUFFER_SIZE越大,占用内存越高,性能一般越高(如果太大,造成接收等待的情况,可能越差。这个值与计算机性能有关,我测试时设为100K)
在发送端和接收端在进行数据传输时避免等待情况出现
发送端发送数据后,如果希望服务器端立即接收,调用out.flush()方法刷新缓存,避免数据缓冲造成服务器等待。
注意:out.flush()调用频繁,可能也会影响性能,何时flush,时发送端和接收端的交互情况而定,以不造成读取等待为原则。
与飞鸽传输比较
测试单个文件传输:文件大小76.3MB
Java TCP 飞鸽 平均速度:11.1MB/s
费时:6.87秒 平均速度:11.1MB/s
费时:6.84秒
测试文件夹传输:大小: 77.3MB,包含1476个文件,183个文件夹
Java TCP 飞鸽 平均速度:5.5MB/s
费时:14.00秒 平均速度:5.2MB/s
费时:13.90秒 平均速度:7.23MB/s
费时:10.69秒(覆盖上次一次创建的文件,覆盖文件比重新创建文件效率高)
平均速度:5.5MB/s
费时:14.73秒
与传输安全控制比较
测试发送文件夹:大小: 77.3MB,包含1476个文件,183个文件夹
通过消息摘要算法,保证传输安全。
Java TCP Java TCP 传输安全 第一次测试:
平均速度:5.5MB/s
费时:14.4秒 第二次测试:
平均速度:7.6MB/s
费时:10.3秒
第三次测试:
平均速度:7.8MB/s
费时:10.1秒 第四次测试:
平均速度:7.5MB/s
费时:10.4秒
测试过程的相关截图与记录
从192.10.33.68 向192.10.33.70发送文件
飞鸽:
文件接收完成。总共大小: 76.3MB 平均速度:11.1MB/s 费时:6.84秒 共1个文件:jdk-6u23-windows-i586.exe
Java:
Java发送文件夹测试:
原创力文档


文档评论(0)