我使用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
关于上述命令的更多细节可以在这里找到。
如果问题仍然存在,那么你应该
Shishir
你有没有在Windows机器上运行的防病毒应用程序? 尝试先禁用,看看是否有任何区别。
我会试试这个命令。
netsh int tcp set global autotuninglevel=disabled
如果没有区别,只需重新启用它
netsh int tcp set global autotuninglevel=enabled
自动调整有时会导致在Windows上的TCP问题(坦率地说,我不知道它到底是做什么的),但是这在过去也造成了一些类似的问题,所以也许值得一试。 很高兴可能是很多事情。
更改后必须重新启动。
我认为你的问题是关于网卡的驱动程序,而不是Java。
转到开始 – >控制面板 – >设备管理器 – >网络适配器 – >您的网卡,右键单击然后选择属性。
转到高级选项卡。
使用那些特定于你的网卡的设置进行游戏,所以我们不能真正帮你准确的设置。 您可能有一些名为“大型发送卸载(IPv4)”,可以禁用。
在这里看到: Windows 7上传速度较慢