0
A
回答
0
我的问题解决了。我想暂时确定网络速度,并且我想对每个上传文件(或下载文件)使用动态限制速度(例如:%50以下)。例如;如果我的上传速度为每秒100kb,它应该是动态的每秒50kb,如果它是每秒150kb,它应该是动态每秒75kb。
因此,我上传我的文件的第一个包,并确定bytes per second
。这是我的上传速度。然后,我确定我的动态限制(limit = myUploadSpeed%50)。然后,计算睡眠持续时间(sleep_duration=((myUploadSpeed-limit)/limit)*1000)
(有1000从毫秒转换为秒)。 if (limit>bytesPerSecond)
发送到接下来的每个数据包,等到sleep_duration
我的代码扼杀如下:
private void throttle() throws IOException {
long limit= calculateMaxBytesPerSecond();
long bytePerSec= getBytesPerSec();
if (limit!=-1 && bytePerSec > limit) {
long sleep_duration=((bytePerSec-limit)/limit)*1000;
try {
if(sleep_duration==0)
Thread.sleep(1000);
else
Thread.sleep(sleep_duration);
totalSleepTime += SLEEP_DURATION_MS;
} catch (InterruptedException e) {
throw new IOException("Thread aborted", e);
}
}
}
private long calculateMaxBytesPerSecond() {
switch (streamType) {
case 0:
if(connectionManager.getDownloadSpeedLimit()>0)
return connectionManager.getDownloadSpeedLimit()/downloadManager.getTaskCount();
else
return -1;
case 1:
if(connectionManager.getUploadSpeedLimit()>0)
return connectionManager.getUploadSpeedLimit()/uploadManager.getTaskCount();
else
return -1;
}
return Long.MAX_VALUE;
}
public long getBytesPerSec() {
long elapsed = (System.currentTimeMillis() - startTime)/1000;
if (elapsed == 0) {
return bytesRead;
} else {
return bytesRead/elapsed;
}
}
1
如果您希望每秒发送X MB,请发送X MB,如果小于1秒,请等到第二秒结束。要确定您发送的数据量,请在发送数据时保留一个计数器。
相关问题
- 1. 使用java优化下载速度
- 2. 使用Java优化下载速度
- 3. 网站速度优化
- 4. PHP速度优化
- 5. 优化jQuery速度
- 6. Whatsapp网络:速度
- 7. 速度优化使用BitmapFactory.Options.inSampleSize的
- 8. 针对网络使用优化图像
- 9. 如何以速度速度优化此JAVA代码?
- 10. 谷歌速度优化的Css优化
- 11. 使用Java测量内部网络速度/带宽
- 12. 使用java程序分析网络速度
- 13. Shopify店的速度优化
- 14. 速度优化JavaScript函数
- 15. 的preg_replace速度优化
- 16. Python的速度优化
- 17. Yii2:GridView速度优化
- 18. 为速度优化cURL
- 19. CSS优化速度更快
- 20. CreateInstanceFromAndUnwrap速度和优化
- 21. GridSeachCV优化速度减慢
- 22. 为网络优化图像
- 23. 优化网络抓取
- 24. 通过网络优化Dictionary.EnumerateFiles
- 25. Java事件:慢速网络
- 26. Android/Java慢速网络IO
- 27. 网络使用Java
- 28. 如何使用hyperopt进行Keras深度学习网络的超参数优化?
- 29. 速度优化技术,像yotube和雅虎这样的网站正在使用
- 30. MYSQL - 优化搜索表的速度(仅限速度)