我怎么能用Python知道每分钟执行一行代码的次数?

时间:2016-09-17 05:13:52

标签: python loops time

例如,如果我有:

 something=something+1 

我想知道一分钟内有多少次执行此行以便使用此结果创建另一个变量?

3 个答案:

答案 0 :(得分:0)

我想你正在尝试做一些基本的基准测试,在这种情况下它会是这样的:

import time
start = int(round(time.time() * 1000))

something = 0

while something < 1000000:
    something = something + 1

delta = int(round(time.time() * 1000)) - start

print "loop ran 1000000 times in {0:0d} milliseconds".format(delta)

答案 1 :(得分:0)

如果您愿意等待一整分钟(通常情况并非如此),您可以执行类似

的操作
import time
start = time.time()

operationsPerMinute = 0

while (time.time() - start < 60):
    operationsPerMinute = operationsPerMinute + 1

print(operationsPerMinute)

在哪种情况下,operationsPerMinute保存您想要的值。

或者,您可以在更短的时间范围内运行并使用一些数学运算来估算它在整个分钟的时间范围内。

答案 2 :(得分:0)

对于基准测试,您可能会要求每秒计时。

要计算最后一分钟的事件,这是一个记住给定时期内事件时间戳的类:

import bisect
import time

class TimedCounter:
    def __init__(self, period=60.0):
        self._timestamps = []
        self._period = period

    def _cleanup(self, now):
        del self._timestamps[:bisect.bisect_left(self._timestamps, now - self._period)]

    def increment(self):
        now = time.time()
        self._timestamps.append(now)
        self._cleanup(now)   # optimization: not necessary to call every time

    def get_count(self):
        self._cleanup(time.time())
        return len(self._timestamps)

和一个例子:

tc = TimedCounter(1.0)
for i in range(7, 27):
    tc.increment()
    print("{} time(s) in the last second".format(tc.get_count()))
    time.sleep(7/i)