gpt4 book ai didi

python - 为什么 struct.pack 在性能上有如此高的可变性?

转载 作者:太空狗 更新时间:2023-10-29 18:12:47 26 4
gpt4 key购买 nike

我在测试struct.pack的性能时得到如下结果:

In [3]: %timeit pack('dddd', 1.0, 1.0, 1.0, 1.0)
The slowest run took 578.59 times longer than the fastest. This could
mean that an intermediate result is being cached
1000000 loops, best of 3: 197 ns per loop

为什么最慢的跑得慢578倍? pack 是否在进行一些内部缓存,或者这是某种 CPU 级缓存的结果,还是其他什么?

最佳答案

IPython 分析器是正确的。结果确实被缓存了(至少在某些 python 版本中)。例如在 python 2.7.6 中你可以找到相关代码 here cache_struct 函数定义的地方。

此函数查找缓存以查看最近是否使用了给定的格式并返回相关的 Struct 实例而不是创建一个新实例(这看起来相对昂贵)。

你可以看到它用在pack中。功能(和其他)。


此内容已发布在评论中,但值得作为答案。

关于python - 为什么 struct.pack 在性能上有如此高的可变性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29351501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com