问题标签 [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
我有一个函数f(x)
,它将 0 到 1 之间的 100 个随机浮点列表作为输入x
。不同的列表将导致f
.
我想知道f
在大量不同的随机列表中平均运行多长时间。最好的方法是什么?我应该使用timeit
吗?如果可以,有没有一种方法可以做到这一点,而不包括在每次试验中生成每个随机列表所需的时间?
timeit
如果没有(伪代码),我会这样做:
python - 为什么 timeit 模块花费的时间比代码在 python 中快速产生输出的时间长?
这是计算斐波那契的代码
输出是:
它立即出来,但它仍在计算y
。为什么是这样?当function
快速评估时,为什么timeit
需要function
更长的时间?
python - timeit 内的 Python 函数调用超时
我有一个函数,我们称之为它my_function(*args, **kwargs)
,根据传递给它的参数,它需要 30 秒到很多小时(天)。我有一个不同参数的列表,我想知道给定参数的函数需要多长时间。
我对使用仍然很陌生timeit
,但我已经学到了足够的知识来完成这部分;但是,这对我的目的来说不是很有效。任何需要超过 4 小时才能完成的论点都被认为是棘手的,尽管它们都能够在“有限”时间内解决。由于某些(可能是大多数)参数会导致运行时间超过 20 小时以上,我正在寻找一种在 4 小时后终止测试的方法,这样我就不必在弄清楚之后浪费时间了这是棘手的。
我查看了Timeout on a Python function call和Stop code after time period,这可能是一个足够接近重复的问题,但我无法将这些答案整合在一起,timeit
因此记录的时间少于 4 小时它们应该在长时间运行时返回大于 4 小时的有效时间。
这样做的最佳方法是什么?
编辑:我遇到的问题之一是我看到的答案func(*args,**kwargs)
在timeit
函数看起来像这样的时候已经被采纳:
我不知道如何处理这个表格。
编辑: 我在下面使用线程提供的原始答案实际上并没有终止线程。这可以通过使用以下函数运行它来轻松显示。
使用包含multiprocessing.Pool
, 实际上有terminate()
, 的代码允许这样做。
python - 将嵌套函数导入 timeit
下面我的设置参数有什么问题?
我还尝试了以下方法:
setup="from __main__ import bubbleSort,from copy import copy"
setup="from __main__ import bubbleSort,copy"
setup="from __main__ import bubbleSort"
回溯如下:
python - Python timeit 模块执行混乱
我正在尝试使用 Python 中的 timeit 模块(编辑:我们正在使用 Python 3)来决定几个不同的代码流。在我们的代码中,我们有一系列 if 语句来测试字符串中是否存在字符代码,如果存在则将其替换为:
我们为不同的子字符串多次这样做。我们正在讨论它和只使用这样的替换:
我们尝试使用 timeit 来确定哪个更快。如果上面的第一个代码块是“stmt1”,第二个是“stmt2”,我们的设置字符串看起来像
我们的 timeit 语句将如下所示:
和
现在,像这样运行它,在我们的两台笔记本电脑上(相同的硬件,相似的处理负载)stmt1(带有 if 语句的语句)即使在多次运行后也运行得更快(百分之三到四秒对四分之一秒) stmt2 的秒数)。
但是,如果我们像这样定义函数来做这两件事(包括创建变量的设置):
和
并像运行 timeit 一样:
没有 if 语句 (foo2) 的语句运行得更快,与无功能的结果相矛盾。
我们是否遗漏了有关 Timeit 工作原理的一些信息?或者 Python 如何处理这样的案例?
编辑这里是我们的实际代码:
对比这段代码:
python - timeit 吃掉返回值
我想以便宜的方式测量函数的执行时间,如下所示:
但是我想使用timeit
,profile
或其他内置的来处理由于平台差异而导致的任何常见缺陷,并且获得实际执行时间而不是墙上时间可能也会更好。
我尝试使用timeit.Timer(foo).timeit(number=1)
,但界面似乎掩盖了返回值。
python - python中的timeit模块无法识别numpy模块
我想测试两个相同列表之间的处理时间,特别是普通列表和 numpy 列表。我的代码是
计算t
很好,但u
NameError: global name 'np' is not defined 被列出。
我应该如何编码以获得处理时间?
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 使用所需的命令行参数独立运行的能力?
python - 在以索引为输入编号的 for 循环中运行 timeit
我试图运行 timeit 来为 python 函数计时,如下所示:
global name 'i' is not defined
即使我在程序开始时将我定义为global i
当我像这样运行 timeit 时:
有用。有什么建议么?
python - 你如何使用 timeit 来计算一个函数运行多长时间?
试图弄清楚这段代码运行需要多长时间:
输出如下:
514229 timeit.Timer 实例位于 0xda28c0