Windows JVM限制了http输出流的上传速度

时间:2013-05-03 12:49:18

标签: java windows jvm outputstream

我有桌面java应用程序用于将文件上传到某个服务器,我使用简单的输出流

socket.getOutputStream();
outputStream.write(buffer, 0, bytesRead);
在osx或linux上运行正常,但在Windows上最大速度大约为1MB / s,但在同一行上的osx上它超过4MB / s。

我正在使用java 6,但是在java 7或unofficil windows上,openjdk是一样的

你知道我该怎么处理这个问题吗?

1 个答案:

答案 0 :(得分:1)

在不知道任何细节的情况下无法分辨,但我会开始玩这些参数:

  • 尝试放大缓冲变量
  • 放大套接字的发送缓冲区:setSendBufferSize()
  • 使用TCP选项进行播放:setTcpNoDelay(true / false)等。
  • 通过删除读数并将缓冲区写入N次以生成足够的数据,确保问题是套接字而不是I / O.它可能是源设备太慢而不是套接字。