Задать вопрос
  • Почему не отображается время работы функции при использовании datetime.now()?

    @natalya1000 Автор вопроса
    dim5x,
    получается, что по-хорошему, для более простых функций лучше использовать
    perf_counter() из модуля time

    или метод .total_seconds()
    Написано
  • Почему не отображается время работы функции при использовании datetime.now()?

    @natalya1000 Автор вопроса
    dim5x,
    да, проверила, все отрабатывает

    это нормально, что каждый раз одна и та же функция, с одними и теми же аргументами отрабатывает за разное время?

    Время работы функции: 0:00:00.046875
    Время работы функции: 0:00:00.042885
    Время работы функции: 0:00:00.043882
    Время работы функции: 0:00:00.043587
    Время работы функции: 0:00:00.044879
    Написано
  • Почему не отображается время работы функции при использовании datetime.now()?

    @natalya1000 Автор вопроса
    dim5x, Everything_is_bad,
    увеличила число вызовов до 10 миллинов, и в последний раз функция отрабатывает все равно за 00:00:00 сек.
    такое чувство, что у меня выводится в неправильном формате
    Написано
  • Почему не отображается время работы функции при использовании datetime.now()?

    @natalya1000 Автор вопроса
    dim5x, Everything_is_bad,
    у другого человека тот же код выводит время функции в формате - 0:00:00.000001, хотя он также делает через datetime

    я сделала функцию "более нагруженной" - сложение нескольких чисел. И я сделала декоратор, который вызывает
    функцию 64 раза, т.е. каждый последующий вызов - должен показывать более долгое время

    но все равно все по нулям
    все 64 раза - за наносекунды, в том числе последний 64-ый раз - это все равно норма?

    from typing import Callable
    from datetime import datetime
    
    
    def deco_repeater(count: int):
        def deco_time(func: Callable) -> Callable:
            result = []
            def inner(*args, **kwargs):
                for _ in range(count):
                    start = datetime.now()
                    result.append(func(*args, **kwargs))
                    finish = datetime.now()
                    print(f'Время работы функции: {finish - start}')
                return result
    
            return inner
    
        return deco_time
    
    @deco_repeater(64)
    def summa(a, b, c, d, e, f):
        return a + b + c + d + e + f
    
    summa(1, 4, 5, 6, 7, 8)


    Выводит:
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Время работы функции: 0:00:00
    Написано