栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

试图模拟恒定字节率。与时间睡眠结果混淆

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

试图模拟恒定字节率。与时间睡眠结果混淆

结论

多亏@JFSebastian 和他的代码,我才知道:

  • 最好使用截止日期作为时间参考,而不是在每个循环中创建新的参考
  • 使用截止日期可以使time.sleep的不精确度“摊销”,在所需的比特率附近振荡一点,但会得出正确的(并且要更稳定)的平均值。
  • 您只需要使用一次time.time(),这意味着更少的计算误差。

结果,我得到了恒定的32000 B / s振荡到31999,很少能振荡到31745。
现在我可以听到音乐了,没有任何滞后或抖动!

我尝试仅使用

%
运算符来使用@JFSebastian强制性操作来使其余部分hibernate,但KB /
s异常地波动,因此我决定保留截止日期实现,因为通过增加浮点值会造成不精确性。但是,总体结果足以满足我的需求。
谢谢大家。

最终密码

def read(self):    self.deadline += 0.020      delay = self.deadline - time.perf_counter()    if delay > 0:        time.sleep(delay)    return self._read()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号