簡體   English   中英

在py.test執行期間分析cpu和內存使用情況

[英]Profile cpu and memory usage during py.test execution

我正面臨以下項目。 我要創建一組執行性能測試套件的過程中顯示CPU和內存級別的圖片。 我將不勝感激任何建議。

目前,我正在考慮的唯一方法是使用命令top或python模塊psutil並在測試中並行執行它們。 但是我想知道是否已經存在更好的方法,可能是py.test插件。

一個不錯的選擇是能夠比較一個執行到另一個執行的參數。

測試在Linux(Ubuntu)下執行。

從獲取廣泛的系統統計信息然后取平均值(頂部)到使用處理器硬件計數器(例如,使用Intel VTune),有很多方法可以使用。

psutil看起來非常好。 我唯一的評論是確保您進行了多次測量,然后對它們進行平均以消除雜散峰值等。

/ proc / [pid] / stat (請參見手冊頁), 時間或其他一些進行這些測量的可能方法,或者如果您真的很着迷,則可以使用一些編程技術,例如Windows

這是有關以編程方式獲取基准值的很好的討論 它還討論了您可能會遇到的一些陷阱,即使您沒有使用編程方法,也應該熟悉這些陷阱。

英特爾擁有很多有關處理器基准測試的信息。 是他們的面包和黃油。

我只能發表的其他評論是,您需要仔細選擇基准。 英特爾強調CPU,因為這是他們最擅長的。 其他公司也是如此。 實際上,取決於應用程序域,還有許多其他重要因素在起作用。

查看不同的基於媒體的基准。 它們可能比僅基於處理器時間的方法更為合適。 我無法輕易找到基准,但是bing是一個奇跡。

有兩個有用的工具可用於逐行計時和功能的內存消耗:

安裝容易

$ pip install line_profiler memory_profiler

要進行分析,請使用@profile裝飾您的函數,然后運行

$ python -m memory_profiler example.py$ python -m line_profiler example.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM