为了检查吞吐量,我修改了蓝牙聊天示例。
我在 UI 中提供了一个发送按钮,它发送一些预定义的编号。字节到服务器套接字并等待确认
ServerSocket 等待某个字符串,一旦获得数据,它就会通过发送确认来回复。
这里我计算的这个连接的吞吐量如下。
我记录发送数据的开始时间。
收到确认后,我记录结束时间。
所以吞吐量将是(发送的数据大小+接收的确认大小)/花费的时间。
结果是:
dataSent(KB)-------吞吐量(每秒千位)
1KB ~200Kbps
5KB ~560Kbps
10KB ~688Kbps
50KB ~512Kbps
根据从应用程序获得的一些数据 行为是,对于 1 KB 或 5 KB 等低数据,吞吐量较小。它增加到大约 40 KB 或但在 50 KB 左右之后又开始减少。我可以看到接收端发生了一些垃圾收集,这增加了延迟。
我想知道这是否是正确的行为。为什么像 1KB 或 5 KB 这样的更少数据吞吐量会减少然后它会增加。我可以考虑哪些可能会增加延迟的事实。现在,当发送方收到接收方的确认时计算吞吐量(其完整的往返计算)。我可以像发送数据一样进行单程旅行,并且在接收到所有内容后,我会计算接收器中的吞吐量。我试过了,但是两部手机之间存在毫秒差异,这给了我错误的结果,有些时间是负值。请帮助我理解正确的行为。