Android上做多线程下载要统计下载速度,思考了一下这么设计的:
记录下过去15s(一直记录,但只保存当前时间向前15秒)内每一次读取网络数据的起讫时间,在刷新速度时,将这15秒分成5组也即每组3s,计算每一租的平均速度(每一秒读到的总网络数据大小除以这一秒最后一次读网络数据结束时间和第一次读网络数据的开始时间的差值),这样得到五组数据,再配以权重比如各值依次乘以0.05,0.1,0.2,0.3,0.35再相加(权重设计依据需求),这样得到的数值应该是减少了网络抖动,比较稳定。
水平有限,如果有其它好的设计,希望不吝赐教!
网友评论