为什么链接的运算符表达式要比其扩展的等效表达式慢?

为什么链接的运算符表达式要比其扩展的等效表达式慢?,第1张

为什么链接的运算符表达式要比其扩展的等效表达式慢?

在CPython的基于堆栈的字节码执行引擎中,

b
链式比较保存额外的引用并不是免费的。它处于“严重的,不用担心”的便宜水平,但是它并不是真正的免费,并且您正在将其与装载局部变量的便宜一些的 *** 作进行比较。

COMPARE_OP
*** 作码删除它从栈中比较的对象,所以链式比较,Python有创造的又一个引用
b
DUP_TOP
)和它推两个地倒在栈(
ROT_THREE
)把它弄出来的方式。

在中

a <= b and b <=c
,Python只是复制另一个引用到
b
堆栈框架的
fastlocals
数组中,而不是上面的引用改组。这涉及较少的指针改组和字节码评估循环的行程,因此便宜一些。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存