Как вы измеряете время выполнения функции? - PullRequest
4 голосов
/ 16 сентября 2008

Как вы можете измерить количество времени, которое займет выполнение функции?

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

Этот конкретный вопрос относится к встроенной системе, запрограммированной на C или C ++.

Ответы [ 12 ]

1 голос
/ 16 сентября 2008

В терминале OS X (и, вероятно, также в Unix) используйте «время»:

time python function.py
1 голос
/ 16 сентября 2008

Если вы ищете разрешение менее миллисекунды, попробуйте один из этих способов синхронизации. Все они дадут вам разрешение по крайней мере за десятки или сотни микросекунд:

Если это встроенный Linux, посмотрите на таймеры Linux:

http://linux.die.net/man/3/clock_gettime

Встроенная Java, посмотрите на nanoTime (), хотя я не уверен, что это во встроенной версии:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#nanoTime()

Если вы хотите попасть на счетчики оборудования, попробуйте PAPI:

http://icl.cs.utk.edu/papi/

В противном случае вы всегда можете пойти к ассемблеру. Если вам нужна помощь с этим, вы можете посмотреть исходный код PAPI для вашей архитектуры.

...