计算在不同操作系统间通讯的传输时间注意事项

文章讨论了在计算Windows到Android的数据传输时间时,偶尔出现负数的问题。经过分析,可能是由于数据达到默认的最大发送包值(如1M)时才发送,导致某些间隔时间小于发送频率,从而出现负数。解决方案是关注传输时间的峰值,以获取更准确的传输时间估计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近@terryK 在计算统计在从windows通讯传输到Android的传输时间,@terryK 给出的计算公式是 传输时间 = (Android2 - Android1) - (windows2 - windows1):Android1是指上一次收到数据的Android系统时间,Android2是指这一次收到数据的Android系统时间,windows1是指上一次发送时Windows系统时间,windows2是指这一次发送时Windows系统时间,最终计算在android端计算。

经过我们讨论,计算公式没发现什么问题,但是结果出来偶尔出现一些负数。经过检查代码,一开始认为是windows端发送数据后,await等待了android的返回,但是去掉await后仍然存在负数,所以这个问题不是主要问题。

然后我们列出了windows端和android的规律,如下:

 @terryK 看到这个规律想到了之前他做的投屏通讯遇到的问题:很多协议的通讯是达到了默认设定的包大小才会发送一次数据。这样看来就解析通以上规律了。每间隔几个数据就出现负数,说明每间隔几个数据可能达到了默认最大发送包值1M,所以这时候发送数据,然后与上一次处理的数据间隔是很小的(只要这个间隔时间比windows发送频率小,就会出现负数)。所以把每个计算出来的传输时间画成折线图,那么每个峰值就是相对准确的传输时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值