qq_36324464
咸鱼哥哥
2020-07-30 16:29
采纳率: 50%
浏览 426
已采纳

JAVA使用FTPClient下载文件速度慢

——————————

目前的需求是去一台FTP服务器上边拉取文件,若是直接通过命令跳过去该FTP服务器mget *文件,速度可以达到500MB/S左右的速度,但是使用java程序去拉取,速度只有500kb。是不是什么配置影响了程序下载文件的速度?
——————————
图片说明
————————

下图是使用java程序去下载两个25MB左右大小的文件,耗时都是在35秒左右,用过公司其他框架在这台机器上做ftp文件拉取,速度也是很快,核心下载代码都是使用

ftpHelper.getFtpClient().retrieveFile(currentFile, fos)但是不明白为啥速度相差那么大


图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • wd369
    wd369 2020-07-30 17:24
    已采纳

    增加 接受buffer的大小

    FTPClient  client=ftpHelper.getFtpClient();
    client.setBufferSize(1024*1024); // 增加 接受buffer的大小
    client.retrieveFile(currentFile, fos);
    
    
    点赞 评论
  • m0_37574389
    有头发的猩猩 2020-07-30 17:40

    你可以看看我写的这个插件:https://gitee.com/qq1319426493/AutoUpdate

    点赞 评论
  • kingwolf_JavaScript
    浴火_凤凰 2020-07-30 18:12

    在不同下载速度的机器可以抓包看一下 比较一下

    点赞 评论
  • caozhy

    org.apache.commons.net.ftp.FTPClient
    这个设置下缓冲区
    ftp = new FTPClient();
    ftp.setBufferSize(100000);

    点赞 评论
  • qq1170993239
    烟雨虹 2020-07-31 09:35
    1. 你要确定使用命令和使用代码是否为同一网络(带宽问题)
    2. 代码质量(是否考虑文件流传输,是否考虑设置缓冲区)
    3. FTP文件传输协议与java代码的socket比较,性能如何
    点赞 评论

相关推荐