问题标签 [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.

0 投票
2 回答
172 浏览

python - timeit 在 Python 中抛出 keyerror

我正在尝试使用 timeit 为一个简单的 Python 方法计时,但我不断收到以下错误

如下所示,代码创建了一个“树”对象,然后我尝试在 Timer 对象中传递该对象。我想这就是问题所在。

请注意,如果我改为将 binarytree.mkthing(0,10) 传递给 Timer,则代码有效。然而,这样做每次都会调用 mkthing。我只想调用一次然后重用它。

我该怎么做呢?

0 投票
1 回答
570 浏览

python - timeit.timer 在我自己的函数中使用它与从命令行调用它时给出截然不同的结果

我使用 timeit 做了一个小功能,这样我就可以偷懒,少打字,这不是按计划进行的。

(相关)代码:

它运行良好,但不断返回:

现在,如果我从口译员那里做:

我最终得到[0.007723014775432375, 0.007615270149786965, 0.0075242365377505395, 0.007420834966038683, 0.0074086862470653615], 或大约 8 毫秒。

如果我在脚本上运行分析器,它也会给出大约相同的结果,大约 8 毫秒。

我不太确定问题是什么,尽管我认为它与调用函数的方式有关。当我在调试器中检查数据时,它将函数显示为 len 为 53 的字典,每个键包含 1 到 15 个元组,每个元组有一对 2-3 位数字。

所以,如果有人知道它为什么这样做并且想向我解释它,以及如何解决它,那就太好了!

0 投票
1 回答
177 浏览

python - 在 Python 中查找运行时间

我有以下完美的代码:

它工作得很好,但现在我想看看我的电脑运行这个程序需要多长时间。因此,在谷歌搜索问题后,我发现了 2 个替代方案:

1) 从 timeit 导入 Timer 。在我打印结果的部分,我添加了:

这很好用:我得到Running Time = 0.00682769470029

2)从日期时间导入日期时间和:

这也可以正常工作,我得到:0:00:00.010000

我的问题是:为什么两种方法不同?为什么我会得到不同的结果?有没有办法在一行中“计算运行时间”?

谢谢

更新:

所以我可以输入(我的文件保存为 time1.py)

但我收到一个错误:“属性错误:‘模块’对象没有属性‘主’

0 投票
1 回答
822 浏览

python - 隐式与显式对象方法内存基准差异

我对将对象传递给方法的两种不同方法进行了基准测试,隐式对象传递比显式方法花费的时间更少。我的书说这些是相同的过程。什么解释了差异?

首先,这是类定义:

因此,当我在以下两组代码中的每一个上运行“timeit”时,第一个每个循环返回 317 ns,第二个每个循环返回 400 ns。这是隐式的对象方法传递代码,其中 Python 将对象传递给幕后的方法:

这是明确的替代方案:

有人可以告诉我解释基准差异的内存分配级别发生了什么吗?一种方式比另一种方式更“pythonic”吗?为什么程序员会选择一个而不是另一个(超出速度)?

谢谢,

迈克尔

0 投票
3 回答
6414 浏览

python - 在带参数的函数中使用 timeit 模块

文档中的示例

但是如何调用带参数的函数,例如这样的函数:

0 投票
2 回答
10209 浏览

ipython - 你能捕捉到 ipython 魔法方法的输出吗?(时间)

我想捕获并绘制 5 个左右调用的结果,其中Ntimeit的大小呈对数递增,以显示如何随输入缩放。methodX()

到目前为止,我已经尝试过:

这没用...

在文档中也找不到信息。我觉得您至少应该能够拦截打印的字符串。之后我可以解析它以提取我的信息。

有没有人这样做或尝试过?

PS:这是在 ipython 笔记本中,如果有差异的话。

0 投票
1 回答
129 浏览

python - %timeit 语句 1;声明2;

%timeit在 IPython中,当使用魔法时

%timeit 语句 1;声明2;

测量statement1statement1一起statement2(顺序)?我想测量后者。

0 投票
2 回答
1403 浏览

python - 使用 Timeit 调用函数

我正在尝试在 python 中计时几件事,包括上传到亚马逊的 S3 云存储的时间,并且遇到了一些麻烦。我可以计时我的哈希和其他一些事情,但不能上传。我以为这篇文章最终会让我到达那里,但我似乎无法找到救赎。任何帮助,将不胜感激。对python很陌生,谢谢!

0 投票
0 回答
70 浏览

python - timeit,对相同的设置字符串使用不同的 stmts 不起作用

我正在尝试使用该timeit模块来计时两种插入排序实现的性能。

我想为下面的两个排序函数使用相同的设置数据,所以我想我会创建一个timeit.Timer实例,然后在进行stmt过程中更改实例的属性。这是行不通的。

我得到了相同的结果,这与 default 的结果相同stmt='pass'

然而,当我测试设置字符串中的代码时,它似乎正在工作。

0 投票
2 回答
10744 浏览

python - 为什么 if True 比 if 1 慢?

为什么if Trueif 1Python 慢?不if True应该比 快if 1吗?

我正在尝试学习该timeit模块。从基础开始,我尝试了这些:

我对这些事情感到困惑:

  1. 根据 Sylvain Defresne 先生在这个问题中的回答,一切都被隐式转换为bool第一个然后检查。那么为什么if True比 慢if 1
  2. 为什么test3test1只有return值不同时慢?
  3. 像问题 2,但为什么比test4一点?test2

注意:我跑了timeit3 次,取了结果的平均值,然后把时间和代码一起贴在这里。

这个问题与如何进行微基准测试无关(我在这个例子中做了,但我也明白它太基础了),但为什么检查“真”变量比常数慢。