Python:Примеры/Секундомер с измерением общего времени и времени круга: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Python/Панель перехода}} {{Myagkij-редактор}} =Простое профилирование программы= ==Задача== Изм…»)
 
Нет описания правки
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=Простое профилирование программы=
=Секундомер с измерением общего времени и времени круга=


==Задача==


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


{{Спойлер|Это простой способ профилирования, если вам нужна более информативная детализация, обратитесь к функции [[cProfile.run()]]}}
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
 
import time
==Решение==
 
Вызовите функцию [[time.time()]] в начале блока кода, время выполнения которого вы хотите измерить, а затем в конце этого блока, затем вычтите значение первой временной метки из значения второй, в результате получите длительность промежутка времени, прошедшего между двумя вызовами.
 
==Пример==


Измерим сколько займет времени вычисление произведения первых 100 000 чисел.
# Отображаем инструкцию для пользователя
print('Press enter to begin. Afterwards, press ENTER to "click" the stopwatch. Press Ctrl-C to quit.')
input()
print('Начали.')
startTime = time.time() # get the first lap's start time
lastTime = startTime
lapNum = 1


===Код===
# Start tracking the lap times.
 
try:
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div" highlight="2,7">
    while True:
import time
        input()
startTime = time.time()
        lapTime = round(time.time() - lastTime, 2)
# Вычисление произведения первых 100 000 чисел
        totalTime = round(time.time() - startTime, 2)
product = 1
        print('Lap #%s: %s (%s)' % (lapNum, totalTime, lapTime), end='')
for i in range(1, 100000):
        lapNum += 1
    product = product * i
        lastTime = time.time() # reset the last lap time
endTime = time.time()
except KeyboardInterrupt:
print('Длина результата: %s цифр.' % (len(str(product))))
    # Handle the Ctrl-C exception to keep its error message from displaying.
print('Расчет занял %s секунд' % (endTime - startTime))
    print('\nГотово.')
</syntaxhighlight>
</syntaxhighlight>


Строка 42: Строка 42:


{{SEO
{{SEO
|Заголовок статьи=Python:Рецепты - Простое профилирование программы / Онлайн справочник - wikihandbk.com
|Заголовок статьи=Python:Примеры - Секундомер с измерением общего времени и времени круга / Онлайн справочник - wikihandbk.com
|Ключевые слова=python, рецепты python, профилирование в python, python профилирование, профилирование time.time(), time.time(), time()
|Ключевые слова=python, примеры python, примеры на python
|Описание статьи=
|Описание статьи=
|Изображение статьи для Open Graph=
|Изображение статьи для Open Graph=
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Python:Рецепты</nowiki>
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Python:Примеры/Секундомер с измерением общего времени и времени круга</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Высота изображения статьи для schemaNewsArticle=

Версия от 16:15, 12 января 2020

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


Секундомер с измерением общего времени и времени круга

Код

import time

# Отображаем инструкцию для пользователя
print('Press enter to begin. Afterwards, press ENTER to "click" the stopwatch. Press Ctrl-C to quit.')
input()
print('Начали.')
startTime = time.time() # get the first lap's start time
lastTime = startTime
lapNum = 1

# Start tracking the lap times.
try:
    while True:
        input()
        lapTime = round(time.time() - lastTime, 2)
        totalTime = round(time.time() - startTime, 2)
        print('Lap #%s: %s (%s)' % (lapNum, totalTime, lapTime), end='')
        lapNum += 1
        lastTime = time.time() # reset the last lap time
except KeyboardInterrupt:
    # Handle the Ctrl-C exception to keep its error message from displaying.
    print('\nГотово.')

См.также

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