从Windows OS Apache HttpPut请求是非常缓慢的

我使用Apache DefaultHttpClient与HttpPut使用REST API进行file upload。 从窗口运行速度非常慢,发送240 kb /秒。 但是,当我从MAC运行相同的文件时,它发送950 kb /秒

我没有任何Windows和Mac OS的明确条件。

任何人都可以帮助我解决这个问题。

我的代码:

HttpPut putRequest = new HttpPut("http://my.localhost.com:8888"); FileEntity reqEntity = new FileEntity("c:/test/test.zip","text/plain"); putRequest.setEntity(reqEntity); putRequest.addHeader("X-Auth-Token",strToken); httpResponse = client.execute(putRequest); mResponseCode = httpResponse.getStatusLine().getStatusCode(); 

Java是一次写入,在任何地方运行 (WORA)。 因此,Windows机器上比HTTP机器上的HTTP连接慢的原因与Java无关。

可能会有几个Windows机器的问题,可以减慢上传速度。 我建议你在提升的命令提示符下按顺序运行下面的命令。

要禁用接收端缩放:

 netsh interface tcp set global rss=disabled 

要禁用TCP / IP自整定,请执行以下操作:

 netsh interface tcp set global autotuninglevel=disabled 

要禁用所有任务卸载:

 netsh int ip set global taskoffload=disabled 

关于上述命令的更多细节可以在这里找到。

如果问题仍然存在,那么你应该

  1. 重新安装测试的网络驱动程序。
  2. 用网络引导到安全模式来检查结果。 如果工作正常,请检查Clean Boot中的结果,以检查哪个第三方工具影响了这一点。

Shishir

你有没有在Windows机器上运行的防病毒应用程序? 尝试先禁用,看看是否有任何区别。

我会试试这个命令。

 netsh int tcp set global autotuninglevel=disabled 

如果没有区别,只需重新启用它

 netsh int tcp set global autotuninglevel=enabled 

自动调整有时会导致在Windows上的TCP问题(坦率地说,我不知道它到底是做什么的),但是这在过去也造成了一些类似的问题,所以也许值得一试。 很高兴可能是很多事情。

更改后必须重新启动。

我认为你的问题是关于网卡的驱动程序,而不是Java。

转到开始 – >控制面板 – >设备管理器 – >网络适配器 – >您的网卡,右键单击然后选择属性。

转到高级选项卡。

使用那些特定于你的网卡的设置进行游戏,所以我们不能真正帮你准确的设置。 您可能有一些名为“大型发送卸载(IPv4)”,可以禁用。

在这里看到: Windows 7上传速度较慢