Python:Рецепты/Простое профилирование программы: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
(не показано 5 промежуточных версий 1 участника)
Строка 9: Строка 9:
Измерение периодов времени, в течение которых выполняются определенные фрагменты кода.
Измерение периодов времени, в течение которых выполняются определенные фрагменты кода.


{{Спойлер|Это простой способ профилирования, если вам нужна более информативная детализация, обратитесь к функции [[cProfile.run()]]}}
{{Примечание1|Это простой способ профилирования, если вам нужна более информативная детализация, обратитесь к функции [[cProfile.run()]]}}


==Решение==
==Решение==
Строка 19: Строка 19:
Измерим сколько займет времени вычисление произведения первых 100 000 чисел.
Измерим сколько займет времени вычисление произведения первых 100 000 чисел.


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div" highlight="2,7">
===Код===
 
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" highlight="2,7">
import time
import time
startTime = time.time()
startTime = time.time()
Строка 32: Строка 34:


=См.также=
=См.также=
{{ads}}


=Внешние ссылки=
=Внешние ссылки=
Строка 39: Строка 39:
<references />
<references />


{{SEO
{{Навигационная таблица/Портал/Python}}
|Заголовок статьи=Python:Рецепты - Простое профилирование программы / Онлайн справочник - wikihandbk.com
|Ключевые слова=python, рецепты python, профилирование в python, python профилирование, профилирование time.time(), time.time(), time()
|Описание статьи=
|Изображение статьи для Open Graph=
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Python:Рецепты</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Ширина изображения статьи для schemaNewsArticle=
|Дата публикации для schemaNewsArticle=2020-01-12
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}


[[Категория:Рецепты]]
[[Категория:Рецепты]]
Строка 63: Строка 48:
[[Категория:Код с вызовом time()]]
[[Категория:Код с вызовом time()]]
[[Категория:Код с вызовом time.time()]]
[[Категория:Код с вызовом time.time()]]
[[Категория:Профилирование]]
[[Категория:Профилирование в Python]]
[[Категория:Профилирование кода]]

Текущая версия от 20:06, 23 мая 2023

Проверка/Оформление/Редактирование: Мякишев Е.А.


Простое профилирование программы

Задача

Измерение периодов времени, в течение которых выполняются определенные фрагменты кода.

Примечание

Это простой способ профилирования, если вам нужна более информативная детализация, обратитесь к функции cProfile.run()

Решение

Вызовите функцию time.time() в начале блока кода, время выполнения которого вы хотите измерить, а затем в конце этого блока, затем вычтите значение первой временной метки из значения второй, в результате получите длительность промежутка времени, прошедшего между двумя вызовами.

Пример

Измерим сколько займет времени вычисление произведения первых 100 000 чисел.

Код

import time
startTime = time.time()
# Вычисление произведения первых 100 000 чисел
product = 1
for i in range(1, 100000):
    product = product * i
endTime = time.time()
print('Длина результата: %s цифр.' % (len(str(product))))
print('Расчет занял %s секунд' % (endTime - startTime))

См.также

Внешние ссылки