Профиль и cProfile не имеют ничего , связанного с оценкой времени компиляции. Они оценивают время выполнения .
Время компиляции не является проблемой производительности. Не хотите, чтобы ваш код компилировался при каждом запуске? import
, и он будет сохранен как .pyc
и перекомпилирован только в случае его изменения. Просто не имеет значения, сколько времени занимает компиляция кода (это очень быстро), так как это не нужно делать каждый раз, когда он запускается.
Если вы хотите рассчитать время компиляции, вы можете использовать пакет компилятора .
В основном:
from timeit import timeit
print timeit('compiler.compileFile(' + filename + ')', 'import compiler', number=100)
напечатает время, необходимое для компиляции filename
100 раз.
Если внутри func
вы добавляете в некоторые списки, делаете некоторые дополнения, ищите переменные в словарях, profile
скажет вам, сколько времени занимает каждая из этих вещей.
Ваша версия не говорит вам ничего из этого. Это также довольно неточно - время, которое вы получите, зависит от времени, которое требуется для поиска атрибута clock
в time
и последующего его вызова.
Если вы хотите рассчитать короткий фрагмент кода, используйте timeit
. Если вы хотите профиль код, используйте profile
или cProfile
. Если вы хотите узнать , сколько времени потребовалось для выполнения произвольного кода, но не какие его части были самыми медленными, тогда ваша версия в порядке, , пока код не занимает только несколько миллисекунд .