问题标签 [timeit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - timeit 在 Python 中抛出 keyerror
我正在尝试使用 timeit 为一个简单的 Python 方法计时,但我不断收到以下错误
如下所示,代码创建了一个“树”对象,然后我尝试在 Timer 对象中传递该对象。我想这就是问题所在。
请注意,如果我改为将 binarytree.mkthing(0,10) 传递给 Timer,则代码有效。然而,这样做每次都会调用 mkthing。我只想调用一次然后重用它。
我该怎么做呢?
python - timeit.timer 在我自己的函数中使用它与从命令行调用它时给出截然不同的结果
我使用 timeit 做了一个小功能,这样我就可以偷懒,少打字,这不是按计划进行的。
(相关)代码:
它运行良好,但不断返回:
现在,如果我从口译员那里做:
我最终得到[0.007723014775432375, 0.007615270149786965, 0.0075242365377505395,
0.007420834966038683, 0.0074086862470653615]
, 或大约 8 毫秒。
如果我在脚本上运行分析器,它也会给出大约相同的结果,大约 8 毫秒。
我不太确定问题是什么,尽管我认为它与调用函数的方式有关。当我在调试器中检查数据时,它将函数显示为 len 为 53 的字典,每个键包含 1 到 15 个元组,每个元组有一对 2-3 位数字。
所以,如果有人知道它为什么这样做并且想向我解释它,以及如何解决它,那就太好了!
python - 在 Python 中查找运行时间
我有以下完美的代码:
它工作得很好,但现在我想看看我的电脑运行这个程序需要多长时间。因此,在谷歌搜索问题后,我发现了 2 个替代方案:
1) 从 timeit 导入 Timer 。在我打印结果的部分,我添加了:
这很好用:我得到Running Time = 0.00682769470029
2)从日期时间导入日期时间和:
这也可以正常工作,我得到:0:00:00.010000
我的问题是:为什么两种方法不同?为什么我会得到不同的结果?有没有办法在一行中“计算运行时间”?
谢谢
更新:
所以我可以输入(我的文件保存为 time1.py)
但我收到一个错误:“属性错误:‘模块’对象没有属性‘主’
python - 隐式与显式对象方法内存基准差异
我对将对象传递给方法的两种不同方法进行了基准测试,隐式对象传递比显式方法花费的时间更少。我的书说这些是相同的过程。什么解释了差异?
首先,这是类定义:
因此,当我在以下两组代码中的每一个上运行“timeit”时,第一个每个循环返回 317 ns,第二个每个循环返回 400 ns。这是隐式的对象方法传递代码,其中 Python 将对象传递给幕后的方法:
这是明确的替代方案:
有人可以告诉我解释基准差异的内存分配级别发生了什么吗?一种方式比另一种方式更“pythonic”吗?为什么程序员会选择一个而不是另一个(超出速度)?
谢谢,
迈克尔
python - 在带参数的函数中使用 timeit 模块
文档中的示例
但是如何调用带参数的函数,例如这样的函数:
ipython - 你能捕捉到 ipython 魔法方法的输出吗?(时间)
我想捕获并绘制 5 个左右调用的结果,其中Ntimeit
的大小呈对数递增,以显示如何随输入缩放。methodX()
到目前为止,我已经尝试过:
这没用...
在文档中也找不到信息。我觉得您至少应该能够拦截打印的字符串。之后我可以解析它以提取我的信息。
有没有人这样做或尝试过?
PS:这是在 ipython 笔记本中,如果有差异的话。
python - 使用 Timeit 调用函数
我正在尝试在 python 中计时几件事,包括上传到亚马逊的 S3 云存储的时间,并且遇到了一些麻烦。我可以计时我的哈希和其他一些事情,但不能上传。我以为这篇文章最终会让我到达那里,但我似乎无法找到救赎。任何帮助,将不胜感激。对python很陌生,谢谢!
python - timeit,对相同的设置字符串使用不同的 stmts 不起作用
我正在尝试使用该timeit
模块来计时两种插入排序实现的性能。
我想为下面的两个排序函数使用相同的设置数据,所以我想我会创建一个timeit.Timer
实例,然后在进行stmt
过程中更改实例的属性。这是行不通的。
我得到了相同的结果,这与 default 的结果相同stmt='pass'
。
然而,当我测试设置字符串中的代码时,它似乎正在工作。
python - 为什么 if True 比 if 1 慢?
为什么if True
比if 1
Python 慢?不if True
应该比 快if 1
吗?
我正在尝试学习该timeit
模块。从基础开始,我尝试了这些:
我对这些事情感到困惑:
- 根据 Sylvain Defresne 先生在这个问题中的回答,一切都被隐式转换为
bool
第一个然后检查。那么为什么if True
比 慢if 1
? - 为什么
test3
比test1
只有return
值不同时慢? - 像问题 2,但为什么比快
test4
一点?test2
注意:我跑了timeit
3 次,取了结果的平均值,然后把时间和代码一起贴在这里。
这个问题与如何进行微基准测试无关(我在这个例子中做了,但我也明白它太基础了),但为什么检查“真”变量比常数慢。