快速的互联网速度检测

时间:2015-11-24 10:18:40

标签: ios networking nsurlconnection nsdata nstimeinterval

我正在尝试使用NSURLConnection检测我的互联网速度。我做的是,我开始下载一个文件,在NSURLConnection的代表中,我开始一段时间,然后当下载完成时,它获取时间范围以及收到的数据然后我计算得到mb /秒使用下面的代码。

        if (startTime != nil) {

        elapsed = NSDate().timeIntervalSinceDate(startTime)
         NSLog("\(length) -- \(elapsed)")
        var d =  (Double(length) / elapsed)
        var result = CGFloat( d/1024)
        result = result * 0.0078125
        result = result * 0.0009765625
        return result

    }

我的问题是为什么我在这里划分1024,因为如果我不这样做,我得到的是比特/字节......

我假设我从NSDate().timeIntervalSinceDate(startTime)获得秒数,从Nsdata长度获得字节

我认为我正在获得正确的价值,但我不确定。让我知道为什么有必要划分1024!

1 个答案:

答案 0 :(得分:0)

我在the example中除以1024你只是因为我认为看每秒字节数会产生一个太大而无法理解的数字(并且它表明由于可变性而具有误导性的准确度)在那个数字)。

除以1024,就可以得到每秒千字节数。要获得每秒兆字节,你需要除以1024 * 1024.原始代码示例中的1024是一个错误,因为它会产生每秒千字节数。

所以,使用你想要的任何测量。每秒字节数,每秒千字节,每秒兆字节数。或者你可以将每秒兆字节乘以8并获得每秒兆比特(另一种常用的速度衡量标准)。只需将每秒的字节数除以适当的因子。