到新公司后,想养成一个好习惯,写博客,多做分享,就根据自己平时的工作内容来做分享吧
最近新入职公司,需要做一个测速的功能,原来的网速测试,产品反馈测的不准,并且是耦合在UIViewController上的,所以第一个是需要把测速独立出来做一个工具类,第二个是要解决测速不准的问题
测速原理是通过下载资源,看下载的速度,或者通过上传资源,看上传资源的速度,测试中显示每秒实时速度,测试完成显示平均下载或上传速度,所以测试出来的速度和当前网络环境关系很大,不同时间不同软件测试的结果都不一样。
网速换算小贴士: 平时下载时,显示“传输速度为 : 300KB/秒“, 而换算为真实的网络速度应为300×8=2400Kbit/秒 >>即约2.4兆/秒。
对比:360免费Wifi, 百度手机卫士,腾讯手机管家,快鸟单线程,快鸟多线程同一网络环境下的测试数据:
测试对比
测试,快鸟用多线程,公司测速,
其中还有一个软件叫SpeedTest,后来发现他每次测速都比这里面所有的速度快,抓了一下speedTest的包,发现是https,都是乱码,看不了实际东西,他大概的原理我猜测应该是请求服务器接口,服务器根据我目前的网络情况返回给我相应最优的下载资源,然后进行下载测速。
360我抓包看了,他原理和我们一样,写死一个资源去下载测速速度。
最后结论:百度一直是那个速度,可能做了一些平均处理,不是即时速度,腾讯的手机管家出问题了,一值测不了,现在能和360速度差不多,有时比他还好,当然偶尔比他差,以后他会找运维的人看怎么去调整下载的节点,在慢慢去试。
github地址 https://github.com/likaiwork/MeasurNetTools