2014-12-03 17 views
4

有時候我執行的是需要長時間的方法來計算如何配置我的IPython筆記本,以便始終將執行時間顯示爲輸出的一部分?

In [1]: 

long_running_invocation() 

Out[1]: 

通常我想知道多少時間了,所以我必須要這樣寫:

In[2]: 
    import time 

    start = time.time() 
    long_running_invocation() 
    end = time.time() 
    print end - start 
Out[2]: 1024 

有沒有一種辦法配置我的IPython筆記本,以便它自動打印我在下面的示例中所做的每個調用的執行時間?

In [1]: 

long_running_invocation() 

Out[1] (1.59s): 
+0

您可能需要精確的思想。 – jrjc 2014-12-03 19:12:50

回答

2

我還沒有找到一個辦法讓每一個細胞的輸出需要執行代碼的時間,但不是你有什麼,你可以使用魔法細胞:%時間或%timeit

ipython cell magics

6

這IPython的擴展你想要做什麼:https://github.com/cpcloud/ipython-autotime

負載它通過把這個在您的筆記本電腦的頂部:

%install_ext https://raw.github.com/cpcloud/ipython-autotime/master/autotime.py %load_ext autotime

加載後,每個後續的單元執行都會包含執行其輸出的一部分所需的時間。

+0

很好。我不得不這樣做$ sudo pip install ipython-autotime – Tagar 2016-02-22 05:21:17

+0

https://raw.github.com/cpcloud/ipython-autotime/master/autotime.py返回404 – Amnon 2017-08-31 21:56:51

1

現在,您可以只使用%%time魔術在小區的開頭是這樣的:

%%time 
data = sc.textFile(sample_location) 
doc_count = data.count() 
doc_objs = data.map(lambda x: json.loads(x)) 

在被執行時會打印出像輸出:

CPU times: user 372 ms, sys: 48 ms, total: 420 ms 
Wall time: 37.7 s 
相關問題