Существует ли версия time.time (), которая возвращает тип int? - PullRequest
0 голосов
/ 15 октября 2019

Мой код должен работать с целочисленным временем UNIX, но time.time() не подходит для моего варианта использования. Он возвращает число с плавающей точкой, и приведение его к типу int или создание пола с использованием math.floor () занимает слишком много времени при записи с использованием timeit.timeit.

Вывод timeit.timeit(lambda : time()) составляет около 0,12 секунды, что достаточно дляМой вариант использования, но не int.
Вывод timeit.timeit(lambda : int(time())) составляет около 0,25 секунды, что слишком долго для моего варианта использования.
timeit.timeit(lambda : math.floor(time())) составляет около 0,36 секунды, худший из трех.

Время очень важно, поэтому я бы предпочел некоторую встроенную функцию, которая возвращает время UNIX как целое число, а не как число с плавающей точкой.

Вот фрагмент моего кода:

def main():
    # The value of proceed goes up to 120.
    proceed = 1
    # timeout is some timestamp set at runtime, 2 days from the start of execution.
    while int(time()) <= timeout:
        # tps() uses int(time()), and this is what I want fixed.
        if proceed == tps():
            batchSend(tps())
            proceed += 1
        # These functions also use int(time())
        tocollect = mine()
        collect(tocollect)

1 Ответ

0 голосов
/ 15 октября 2019

Оказывается, я не делал домашнее задание. timeit.timeit () имеет значение по умолчанию number, которое установлено в 1 миллион, поэтому реальное значение намного меньше, чем я думал.

...