2015-02-04 2 views
0

Есть ли в IPython Notebook метод для профилирования содержимого его ячеек?Профилирование ноутбука - IPython

Если нет, как я могу профилировать часть ячейки или всего ноутбука?

+0

Мой любимый профилирующего техника% timeit, но есть намного больше возможностей, как показано, например [Здесь] (http://pynash.org/2013/03/06/timing-and-profiling.html) – Jakob

ответ

0

IPython Notebook имеет очень полезные команды %prun и %%prun. %prun используется для профилирования одной строки кода, а %%prun используется для профайла всей ячейки.

Вы можете найти документацию здесь: http://ipython.readthedocs.org/en/stable/interactive/magics.html#magic-prun

Это короткий пример использования:

%%prun -s cumulative 

import numpy as np 
import scipy.linalg as la 

for i in range(30): 
    a = np.random.randint(100,size=(1000, 1000)) 
    la.inv(a) 

Если вы выполняете эту ячейку, выводится что-то вроде

1053 function calls in 4.152 seconds 

Ordered by: cumulative time 

ncalls tottime percall cumtime percall filename:lineno(function) 
    1 0.001 0.001 4.152 4.152 <string>:3(<module>) 
    30 3.502 0.117 3.505 0.117 basic.py:612(inv) 
    30 0.646 0.022 0.646 0.022 {method 'randint' of 'mtrand.RandomState' objects} 
    30 0.000 0.000 0.002 0.000 lapack.py:382(get_lapack_funcs) 
Смежные вопросы