问题标签 [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 投票
3 回答
810 浏览

python - 如何在每个测试都需要随机设置的情况下使用 timeit

我有一个函数f(x),它将 0 到 1 之间的 100 个随机浮点列表作为输入x。不同的列表将导致f.

我想知道f在大量不同的随机列表中平均运行多长时间。最好的方法是什么?我应该使用timeit吗?如果可以,有没有一种方法可以做到这一点,而不包括在每次试验中生成每个随机列表所需的时间?

timeit如果没有(伪代码),我会这样做:

0 投票
1 回答
145 浏览

python - 为什么 timeit 模块花费的时间比代码在 python 中快速产生输出的时间长?

这是计算斐波那契的代码

输出是:

它立即出来,但它仍在计算y。为什么是这样?当function快速评估时,为什么timeit需要function更长的时间?

0 投票
2 回答
1416 浏览

python - timeit 内的 Python 函数调用超时

我有一个函数,我们称之为它my_function(*args, **kwargs),根据传递给它的参数,它需要 30 秒到很多小时(天)。我有一个不同参数的列表,我想知道给定参数的函数需要多长时间。

我对使用仍然很陌生timeit,但我已经学到了足够的知识来完成这部分;但是,这对我的目的来说不是很有效。任何需要超过 4 小时才能完成的论点都被认为是棘手的,尽管它们都能够在“有限”时间内解决。由于某些(可能是大多数)参数会导致运行时间超过 20 小时以上,我正在寻找一种在 4 小时后终止测试的方法,这样我就不必在弄清楚之后浪费时间了这是棘手的。

我查看了Timeout on a Python function callStop code after time period,这可能是一个足够接近重复的问题,但我无法将这些答案整合在一起,timeit因此记录的时间少于 4 小时它们应该在长时间运行时返回大于 4 小时的有效时间。

这样做的最佳方法是什么?

编辑:我遇到的问题之一是我看到的答案func(*args,**kwargs)timeit函数看起来像这样的时候已经被采纳:

我不知道如何处理这个表格。

编辑: 我在下面使用线程提供的原始答案实际上并没有终止线程。这可以通过使用以下函数运行它来轻松显示。

使用包含multiprocessing.Pool, 实际上有terminate(), 的代码允许这样做。

0 投票
2 回答
459 浏览

python - 将嵌套函数导入 timeit

下面我的设置参数有什么问题?

我还尝试了以下方法:

  • setup="from __main__ import bubbleSort,from copy import copy"
  • setup="from __main__ import bubbleSort,copy"
  • setup="from __main__ import bubbleSort"

回溯如下:

0 投票
2 回答
711 浏览

python - Python timeit 模块执行混乱

我正在尝试使用 Python 中的 timeit 模块(编辑:我们正在使用 Python 3)来决定几个不同的代码流。在我们的代码中,我们有一系列 if 语句来测试字符串中是否存在字符代码,如果存在则将其替换为:

我们为不同的子字符串多次这样做。我们正在讨论它和只使用这样的替换:

我们尝试使用 timeit 来确定哪个更快。如果上面的第一个代码块是“stmt1”,第二个是“stmt2”,我们的设置字符串看起来像

我们的 timeit 语句将如下所示:

现在,像这样运行它,在我们的两台笔记本电脑上(相同的硬件,相似的处理负载)stmt1(带有 if 语句的语句)即使在多次运行后也运行得更快(百分之三到四秒对四分之一秒) stmt2 的秒数)。

但是,如果我们像这样定义函数来做这两件事(包括创建变量的设置):

并像运行 timeit 一样:

没有 if 语句 (foo2) 的语句运行得更快,与无功能的结果相矛盾。

我们是否遗漏了有关 Timeit 工作原理的一些信息?或者 Python 如何处理这样的案例?

编辑这里是我们的实际代码:

对比这段代码:

0 投票
2 回答
1595 浏览

python - timeit 吃掉返回值

我想以便宜的方式测量函数的执行时间,如下所示:

但是我想使用timeit,profile或其他内置的来处理由于平台差异而导致的任何常见缺陷,并且获得实际执行时间而不是墙上时间可能也会更好。

我尝试使用timeit.Timer(foo).timeit(number=1),但界面似乎掩盖了返回值。

0 投票
3 回答
8153 浏览

python - python中的timeit模块无法识别numpy模块

我想测试两个相同列表之间的处理时间,特别是普通列表和 numpy 列表。我的代码是

计算t很好,但uNameError: global name 'np' is not defined 被列出。

我应该如何编码以获得处理时间?

0 投票
1 回答
375 浏览

python - 如何正确导入函数以在 timeit 中使用

我正在使用 timeit 函数在我编写的两种方法上运行一些指标,但遇到了一个问题。请参阅下面的简化示例文件:

fileA.py,这是独立运行的,我正在尝试使用 timeit 测试函数 foo:

这个函数可以独立运行,我可以运行它./fileA.py 5

我有一个类似的文件,fileB.py它是 foo 的不同实现,但除了 foo 的内部之外完全相同。

现在我有一个fileC,我试图在fileA和fileB上使用timeit(省略fileB部分):

我遇到的问题是,当我运行 fileC.py 时,我得到“需要命令行参数,退出”并退出。我知道这是来自 fileA.py,但是为什么这部分代码正在运行呢?我的印象是 timeit 的工作方式,我只是从 fileA 导入 foo。我假设错了吗?如果是这样,纠正此问题的最佳方法是什么,以便我可以测试该方法foo(n)并保持 fileA 使用所需的命令行参数独立运行的能力?

0 投票
1 回答
585 浏览

python - 在以索引为输入编号的 for 循环中运行 timeit

我试图运行 timeit 来为 python 函数计时,如下所示:

global name 'i' is not defined即使我在程序开始时将我定义为global i

当我像这样运行 timeit 时:

有用。有什么建议么?

0 投票
3 回答
546 浏览

python - 你如何使用 timeit 来计算一个函数运行多长时间?

试图弄清楚这段代码运行需要多长时间:

输出如下:

514229 timeit.Timer 实例位于 0xda28c0