Why is inspect.currentframe slower than sys. _getframe?
以下是这个答案:https://stackoverflow.com/a/17366561/1982118
在我的MacBook Pro 2015(2.8 GHz Intel Core i7)和python 3.6上,我得到:
1 2 3 4 5 6 | python3 -m timeit -s 'import inspect' 'inspect.currentframe().f_code.co_name' >>> 1000000 loops, best of 3: 0.428 usec per loop python3 -m timeit -s 'import sys' 'sys._getframe().f_code.co_name' >>> 10000000 loops, best of 3: 0.114 usec per loop |
使用sys.getframe()比inspect.currentframe()快4倍。
怎么会?
假设问题是关于cpython的,您可以在这里看到
1 2 3 | def currentframe(): """Return the frame of the caller or None if this is not possible.""" return sys._getframe(1) if hasattr(sys,"_getframe") else None |
该函数除了调用