2015-04-06 121 views
1

我不知道這裏發生了什麼,所以想我會問你們。iPython lprun不打印輸出

我剛安裝的IPython 3.1的Mac OSX 10.10.2

在IPython中我想我的功能沒有結果,但這裏有一個例子:

In [21]: def rn(): 
    ....:  for ix in range(0,100): print ix 
    ....: 

In [22]: %lprun rn() 
0 
1 
2 
3 
4 
.... 
98 
99 
Timer unit: 1e-06 s 

在這種類型的情況,我預期正常的cProfile類型輸出,顯示運行的行數以及每個行的時間。我究竟做錯了什麼?!

謝謝!

回答

1

使用-f標誌的線路輸出得到線路:

%lprun -f rn rn() 

輸出:

In [13]: %lprun -f rn rn() 
0 
1 
2 
3 
4 
5 
... 
94 
95 
96 
97 
98 
99 
Timer unit: 1e-06 s 

Total time: 0.000933 s 
File: <ipython-input-4-00cddd5336b9> 
Function: rn at line 1 

Line #  Hits   Time Per Hit % Time Line Contents 
============================================================== 
    1           def rn(): 
    2  101   933  9.2 100.0  for ix in range(0,100): print ix 
+0

美麗。有沒有辦法按%時間排序?還有一種方法可以讓它同時分析從同一個文件運行的其他任何功能嗎?所以說我在example.py中運行了run(),iterate()等,run()是主要函數。有沒有辦法調用run(),但也包括iterate()分析? – user1610719

+1

@ user1610719,據我所知,prun需要一個排序鍵,但我認爲lprun沒有。 –