python 2函数运行的时间没有任何导入;有可能吗?

时间:2017-12-19 01:01:48

标签: python time timeit

所以,我最近的任务是在python 2中编写一个函数,可以计算另一个函数的执行时间。这很简单,但问题是我必须这样做而不导入任何模块;这自然包括时间,时间等。

仅使用内置函数和语句(例如sum(), or, yield)这是否可能?

我不想看到解决方案,我需要为自己解决这个问题,但我非常希望知道这是否可行。如果没有,那么我宁可不要浪费时间把头撞在众所周知的砖墙上。

5 个答案:

答案 0 :(得分:3)

如果您使用的是UNIX(或者只是Linux)系统,。阅读/proc/uptime。 它不是超级高效,但仅仅是内置功能。 我不确定如何在Windows上执行此操作。

答案 1 :(得分:3)

易:

def measure_runtime(function):
    function()
    return 0

结果是megayears中的时间为整数。我个人保证其准确性。如果我从现有的身体转移到更耐用的身体,保证就会失效。

答案 2 :(得分:2)

简单回答:,这是不可能的。

这里有一个内置函数docs的python 2.7的link。它们都不允许您测量时间。您被迫使用模块。

Python被认为与其模块一起使用,它包含了很多混合模型。我建议你把时间花在这个上。

抱歉打破了你的梦想< 3

答案 3 :(得分:1)

根据您正在运行的操作系统以及您可以接受的混乱解决方案,您可以在不进口的情况下执行此操作。

增加精神错乱:

  1. 某些系统提供包含各种计时器的虚拟文件。通过在执行前后从该类文件中读取计数器,您至少可以在Linux系统上获得亚秒级分辨率。不确定其他人。

  2. 您可以重复使用现有的进口产品吗?如果该文件已包含threadingmultiprocessingsignal中的任何一个,则可以构建一个计时器。

  3. 如果您的系统上运行某种调度程序(如cron),您可以在其中注入一个作业(通过创建文件),每次运行时都会打印出时间戳。 / p>

  4. 您可以在繁忙的系统上关注日志文件,并假设最后一条消息接近您阅读的时间。

  5. 根据您想要的准确度,您可以测量每个python字节码操作所花费的时间,然后通过function.__code__.co_code为可用代码编写解释器。运行代码时,可以总结所有预期的执行时间。这是唯一不需要特定操作系统/环境的纯Python解决方案。

  6. 如果您在允许进程内存自省的系统上运行,则可以打开它并注入任何功能,而无需技术导入任何内容。

答案 4 :(得分:1)

两个"作弊"方法

如果您要避开import关键字,可以使用__import__导入time,这实际上是内置于python2可执行文件的模块。< / p>

如果您知道Python安装的位置,可以在execfile上使用os.py并使用times功能。