python - 你如何在 .py 文件上使用 %timeit?

标签 python python-3.x ipython

%timeit sortThis 
Output: 15.1 ns ± 0.163 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)

试过了,但它没有给我正确的输出。

sortThis 是一个 .py 文件,其中包含一个简单的对列表进行排序的函数。我已经用秒表计时了,这比命令返回的要多。

感谢您的帮助。

编辑:这是一个家庭作业,我必须在命令行中使用 %timeit。

最佳答案

在我的 IPython 控制台中(IPython 6.4.0 和 Python 3.6.5,安装在 Anaconda 5.2 下),这有效。

%timeit %run sortThis

注意几件事。使用 %cd 魔术命令确保您当前的工作目录是包含 sortThis 脚本的目录。或者,或者在您的命令中包含脚本的路径。此外,如果脚本打印任何内容,您可能会在 %timeit 显示其结果之前在控制台中打印成百上千份副本。

当我在 sortThis 脚本中使用命令 print('Hello, world!') 时,我得到了这个结果:

1.23 ms ± 5.97 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

我很确定脚本的第一次加载导致 Python 将编译后的版本保存到 .pyc 文件中,并且该文件位于我计算机的缓存中。因此,规定的时间是多次执行的平均值,导致时间间隔很小。所以不要期望 %timeit 为您第一次执行脚本计时——只是许多连续执行的平均值。

关于python - 你如何在 .py 文件上使用 %timeit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51451699/

相关文章:

ipython - 如何在 sandstorm.io/ipython 应用程序中安装 python 模块?

python - 如何在另一个列表的前面插入一个列表?

python - 无法从测试函数的函数调用模拟函数调用

python-3.x - 单一 View 中的多模型表单集工厂

ipython - ipython Notebook在不同端口上的多个实例

python - 名称 'get_config' 未定义

Python:在列表理解中重复元素?

python - 在 python 中获取屏幕顶部的 tkinter Messagebox

python - 在现有的 Excel 工作表上保存 Pandas 系列

Python C 扩展将 Capsule 暴露给 ctypes 以使用第三方 C 代码