Время выполнения NYTProf при профилировании и при отсутствии профилирования

Просто хотел убедиться.

У меня есть небольшой скрипт Python, который измеряет время выполнения программы, он просто экономит время до запуска внешней программы, а затем вычитает это значение из времени после завершения программы.

При запуске этого сценария на Perl-скрипте он показывает время выполнения 0,49263, а при запуске того же сценария с NYTProf и просмотре отчета HTML, созданного nytprofhtml, я вижу, что время выполнения составляет 0,80784, почти вдвое больше.

Это нормально? Я полагаю, что профилирование должно увеличить время выполнения, но так сильно?

1 ответ

Это нормально, потому что Devel::NYTProf должен проверять каждый отдельный оператор (и блоки, и так далее). Для каждого оператора необходимо записать данные профилирования на диск. Стоимость этого довольно высока. Вот почему вы не должны запускать его в производство.

Есть некоторая информация о том, как сделать это быстрее в документации.


Если вы работаете в командной строке Linux, никакие другие программы не нуждаются в получении времени выполнения команды. Просто сделайте это на оболочке:

$ time perl foo.pl
Другие вопросы по тегам