У меня есть функция, которая петли, и я хочу измерить, сколько времени потребуется, чтобы пройти один оборот, включая время, которое я добавил с помощью tkinter. Я добавил эти строки в нижнюю часть моей функции циклирования.Как измерить fps (прошедшее время) с помощью tkinter python.after?
Я бы ожидал увидеть количество изменений времени, основанное на значении .after
, но независимо от того, устанавливаю ли его 25 или 5025, я получаю одинаковые базовые результаты. Я также экспериментировал с размещением инструкции time2=
в самом начале цикла, а затем также заменой позиций печати и time2=
.
Я получаю несколько разные результаты с разными позициями, но ни один из них, похоже, не показывает добавленное время значения .after
, хотя я могу отчетливо видеть (в зависимости от того, что делает остальная часть кода), что время добавляется.
Итак, у меня, очевидно, есть проблема «измерения». Есть ли критическая часть знаний, которую я не понимаю?
print time.clock() - time2[0]
time2[0] = time.clock()
root.after(5025, myloop)
вы измеряете время до выполнения 'after' и перед выполнением' myloop', поэтому вам нужно получить неправильный результат. Лучше показать минимальный рабочий пример, потому что этого кода недостаточно, чтобы ответить. – furas
BTW с '5025' вы должны получить около $ 1000/5025' FPS (около 0.199 FPS), но вам нужно добавить время, используемое командой' myloop' - т.е. '1000/(5025 + time_in_myloop)' FPS – furas
time.clock() устарел в Python 3.3 - вы должны использовать process_time() Однако, если вы пытаетесь захватить прошедшее событие событие прошедшего времени, вам может понадобиться дельта-время .time(), а time.clock() и process_time() измеряют время процессора, необходимое для выполнения строки python. –