国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python & IPython Notebook 代碼計時與簡單的性能分析

betacat / 1269人閱讀

摘要:本文記錄一些用于代碼計時和簡單性能分析的工具。也就是這個魔法命令把中剩余的代碼作為輸入變量,對其進行計時。該命令會運行最后一個參數指定的代碼,然后在運行時分析所有需要分析的函數。該命令運行之后會打印一個逐行分析報告。

本文記錄一些用于 Python 代碼計時和簡單性能分析的工具。強烈推薦后兩種工具。

begin & end 手動計時

Matlab 里有一對 tic toc 命令,使用格式如下:

tic
% do anything
toc

之后會打印中間的代碼執(zhí)行時間。這種風格對于簡單的計時還是挺好用的。遺憾的是 Python 中沒有類似的特別方便的模塊,只能用類似于下面的代碼進行模仿:

from time import time

begin = time()
# do anything
end = time()
print(end - begin)
timeit 模塊

timeit 模塊用起來特別不方便:

from timeit import timeit

timeit(stmt="code to run", setup="init code", number=1000000)

后來逐漸發(fā)現這個模塊是設計在 Shell 命令行模式下使用的,而不是在 IPython notebook 模式下使用的。因此這里不多介紹,需要在 Shell 命令行下計時時可以查閱其 Shell 模式下的使用方法。

IPython Notebook %%time

使用 IPython Notebook 時,最簡單的代碼計時應該是 %%time 魔法命令(magic command, I am a Zhong 2)

%%time
# code to run...

注意,"%%" 開頭的魔法命令必須寫在一個 cell 的第一行,并且通常以 cell 中剩余的內容作為輸入變量。也就是這個魔法命令把 cell 中剩余的代碼作為輸入變量,對其進行計時。

line_profiler

line_profiler 是一個強大的代碼逐行時間或者空間開銷分析工具,筆者通常用于代碼逐行運行時間分析,從而定位到用時最多的代碼,并且能得到每行代碼耗時百分比。定位到代碼熱點之后可以對熱點進行優(yōu)化,從而以最小的改動而最大程度上提升代碼效率。本文僅介紹筆者常用的一種方式。

使用前需要安裝:

conda install line_profiler
# or
pip install line_profiler

在 Notebook 中使用,需要運行

%load_ext line_profiler

使用 line_profiler 進行時間分析時,需要指定分析的函數,該工具只會對這個函數中的代碼進行逐行分析。比如對函數 hello 和函數 hi 進行逐行分析,在 Notebook 中命令為

%lprun -f hello -f hi hello()

-f 參數表明接下來要指定一個函數名進行分析,最后一個參數則是要運行的代碼。該命令會運行最后一個參數指定的代碼,然后在運行時分析所有需要分析的函數。該命令運行之后會打印一個逐行分析報告。

更詳細的使用方法參考 如何進行 Python性能分析,你才能如魚得水?,easy profile python in jupyter 以及這些模塊的幫助文檔和官方文檔。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44412.html

相關文章

  • Jupyter Notebook之初識及入門

    摘要:所以,應該直接了當的安裝,其中也會自動安裝上,作為其運行的。這只是一開始,之后還有里各種找不到外部安裝的的情況。終于,意識到這些方法都是錯誤的思路。這才知道原來是無法識別。 為什么要用IPython/Jupyter? python里面調試確實有點煩惱,尤其是在vim里,想要嘗試一些簡單的編碼問題,實在是有點麻煩,不想到命令行模式一行一行執(zhí)行,也不想再新建一個文件測試一個簡單的功能。 而...

    plus2047 評論0 收藏0
  • Jupyter Notebook之初識及入門

    摘要:所以,應該直接了當的安裝,其中也會自動安裝上,作為其運行的。這只是一開始,之后還有里各種找不到外部安裝的的情況。終于,意識到這些方法都是錯誤的思路。這才知道原來是無法識別。 為什么要用IPython/Jupyter? python里面調試確實有點煩惱,尤其是在vim里,想要嘗試一些簡單的編碼問題,實在是有點麻煩,不想到命令行模式一行一行執(zhí)行,也不想再新建一個文件測試一個簡單的功能。 而...

    fredshare 評論0 收藏0
  • 裝扮你Jupyter

    摘要:顯示中文此外,單獨拎出來的另一個原因是,還有一個中文顯示的問題。首先我們來看可以使用的字體你應該看到下面這樣的表格然后找到支持中文的字體名,然后設置的默認字體當然,你可以添加到剛才的配置中,或者采用這個博客的方法。 又到擺脫重復工作,換個心情,然而并沒有軟用的時間了。這次,教大家如何搭建一個好看的jupyter環(huán)境。 安裝Jupyter 先來展示一下我的環(huán)境 python: 3.5....

    leo108 評論0 收藏0
  • CentOS7 install spark+ipython-nodebook

    摘要:使用瀏覽器作為界面,向后臺的服務器發(fā)送請求,并顯示結果。本文主要介紹在上安裝流程該文件是用戶登錄時,操作系統定制用戶環(huán)境時使用的第一個文件,應用于登錄到系統的每一個用戶。 ipython-nodebook IPython notebook 目前已經成為用 Python 做教學、計算、科研的一個重要工具。 IPython Notebook 使用瀏覽器作為界面,向后臺的 IPython ...

    soasme 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<