有没有办法读取自虚拟机启动以来已经解释了多少 Python 虚拟机指令?我意识到这可能(如果可能的话)只适用于 CPython。
问问题
980 次
1 回答
2
不容易。衡量性能的规范方法是使用可用的分析模块之一。仍然...
PyThreadState
在 CPython 2 中,可以通过读取结构从扩展模块(即 C 代码)中获得当前线程的近似测量值。有一个称为的字段tick_counter
,当乘以检查间隔时,它会导致执行的字节码指令的数量。或者,换句话说,解释器主循环的迭代次数。
但是由于检查间隔在执行过程中可能会发生变化,所以这个值并不精确。
CPython 2.7.4 的有趣链接:
- http://hg.python.org/cpython/file/026ee0057e2d/Include/pystate.h#l83
- http://hg.python.org/cpython/file/026ee0057e2d/Python/ceval.c#l977
- http://docs.python.org/2.7/library/sys.html#sys.setcheckinterval
- http://docs.python.org/2.7/c-api/init.html#PyThreadState_Get
由于 CPython 3.2tick_counter
失去了它的真正意义,所以你不得不使用已经提到的跟踪或分析:
于 2013-05-08T10:45:21.107 回答