【发布时间】:2016-06-10 13:21:17
【问题描述】:
是否有可能知道每条指令的某种度量(秒、CPU 滴答声、对数刻度等)的“成本”?或者至少对于 一些 指令,跳过像 SLICE 这样的东西。 https://docs.python.org/3/library/dis.html 有说明。有源代码:https://hg.python.org/cpython/file/tip/Python/ceval.c#l1199。我想通过分析源代码可以估计出每条指令会吃掉多少资源,但我怀疑像我这样的菜鸟能做到这一点。可能有人已经这样做了?当然有很多关于优化的高级建议,关于过度优化,但是这样的措施可能会帮助初学者更好地理解字节码,而无需深入研究 C 源代码?
编辑:实际问题不是关于分析或调试代码 - 我知道各种分析方法 - 这个问题特别是关于字节码。我牢记 CPU 指令具有成本度量 - 每条指令的周期数。
【问题讨论】:
-
今天的计算机几乎(真的完全)是确定性的。因此可以做到这一点。然而,包含其他进程、多线程/处理器计算机、专有操作系统以及将内存分页到硬盘或虚拟内存使得这非常困难。
-
您能否让我们更好地了解您要解决的实际问题?这是单纯的好奇,还是您有一些运行速度太慢的脚本,而您正试图找出原因?
-
@Kevin,这只是好奇。
-
SLICE 具体将完全取决于被切片的内容,
list.__getslice__的实现将与 pandas 等中的某些内容具有不同的性能。我认为没有确定的方法来衡量成本当一堆字节码只会导致其他事情发生时。
标签: python