当前位置: 首页 > 面试题库 >

python中函数的准确计时

莫泓
2023-03-14
问题内容

我正在Windows上的python中进行编程,想准确地测量函数运行所花费的时间。我已经编写了一个函数“
time_it”,该函数需要另一个函数,然后运行它并返回运行时间。

def time_it(f, *args):
    start = time.clock()
    f(*args)
    return (time.clock() - start)*1000

我称其为1000次并取平均值。(最后的1000常数以毫秒为单位给出答案。)

该函数似乎可以正常工作,但是我有一种na不安的感觉,那就是我做错了什么,通过这种方式,我花的时间比函数运行时实际花费的时间更多。

有没有更标准或可接受的方式来做到这一点?

当我将测试函数更改为调用打印以使其花费更长的时间时,time_it函数返回的平均时间为2.5毫秒,而cProfile.run(’f()’)返回的平均时间为7.0毫秒。我认为我的函数会高估时间(如果有的话),这是怎么回事?

另外要注意的是,我关心的是功能彼此之间的相对时间,而不是绝对时间,因为绝对时间显然取决于硬件和其他因素。


问题答案:

建议您不要签出内置的Python分析器(profilecProfile根据您的需要),而不是编写自己的分析代码:http
:
//docs.python.org/library/profile.html



 类似资料:
  • 问题内容: 我需要测量程序某些部分所花费的时间(不是用于调试,而是作为输出中的功能)。准确性很重要,因为总时间将不到一秒钟。 当我遇到timeit时,我将使用time模块,该模块声称 避免了一些用于度量执行时间的常见陷阱 。不幸的是,它有一个糟糕的接口,需要一个字符串作为输入,然后才是eval的。 __ 因此,我是否需要使用此模块来准确地测量时间,还是时间足够?它指的是什么陷阱? 谢谢 问题答案:

  • 本文向大家介绍js精准的倒计时函数分享,包括了js精准的倒计时函数分享的使用技巧和注意事项,需要的朋友参考一下 先看看倒计时效果:   代码: 注意点:  1.有两个功能:当前时间和倒计时,带的参数不同  2.主要是利用js返回的数据,要注意月份,某天,小时,分钟,返回的数值区间  3.星期的我这边用数组处理了  4.倒计时主要是计算时间差,结束时间减去当前时间的秒数,在进行数学计算  5.这里用

  • 问题内容: $fooValue = 100.68; $cowValue = 100.67; 这将显示“错误”。 我知道用Java做些什么。但是我不太擅长PHP,尤其是在计算方面。 请帮帮我。我是说如何成功? 问题答案: 浮点数是一种不精确的数据类型(就像所有浮点数据类型一样),因为在二进制之间进行转换可能会失去精度。这就是为什么当您需要高精度(精确)时不应该使用浮点运算的原因。 在PHP中,检查B

  • 问题内容: 我可以给它加上浮点数,例如 但是它有多精确?如果我给它 它真的会睡约50毫秒吗? 问题答案: time.sleep函数的准确性取决于你底层操作系统的睡眠准确性。对于非实时操作系统(如普通Windows),你可以睡眠的最小间隔约为10-13毫秒。在最小的10-13毫秒以上的时间里,我已经看到了几毫秒内的准确睡眠。 更新:就像在下面引用的文档中提到的那样,通常以循环方式进行睡眠,以确保在早

  • 主要内容:百分比变化(pct_change),协方差(cov),相关系数(corr),排名(rank)Pandas 的本质是统计学原理在计算机领域的一种应用实现,通过编程的方式达到分析、描述数据的目的。而统计函数则是统计学中用于计算和分析数据的一种工具。在数据分析的过程中,使用统计函数有助于我们理解和分析数据。本节将学习几个常见的统计函数,比如百分比函数、协方差函数、相关系数等。 百分比变化(pct_change) Series 和 DatFrames 都可以使用 pct_change() 函数

  • 问题内容: 我需要创建一个简单但准确的计时器。 这是我的代码: 恰好在3600秒后,它将打印约3500秒。 为什么不准确? 如何创建准确的计时器? 问题答案: 为什么不准确? 因为您正在使用setTimeout()或setInterval()。他们不能被信任,没有针对他们的准确性保证。它们被允许 任意滞后,并且它们不能保持恒定的步伐而是趋向于漂移(如您所观察到的)。 如何创建准确的计时器? 使用该