Bloomberg 開源了 memray,這是一種在 Python 應用程式中分析記憶體的工具。 該程式追蹤Python中的記憶體分配操作,並提供用於分析和優化各程式碼段的記憶體消耗的視覺化介面,以及用C/C++編寫的插件。 報告可以互動方式生成,也可以以 HTML 格式生成。 它包括一個用於管理分析的 CLI 介面和一個可用於追蹤第三方專案中的記憶體操作的程式庫。 該程式碼在 Apache 2.0 許可證下發布。 僅支援在Linux平台上操作。
主要特點:
- 應用程式:確定應用程式中記憶體消耗高的原因,尋找記憶體洩漏,並識別執行過多記憶體分配的程式碼。
- 追蹤所有函數呼叫的總記憶體消耗、函數內的消耗以及記憶體分配操作的數量。 能夠準確估計呼叫堆疊。
- 處理對 C/C++ 中的函式庫的呼叫並計算本機模組中的記憶體消耗。 支援使用 numpy 和 pandas 分析專案。
- 開銷最小,對分析應用程式效能的影響可以忽略不計。 停用本機程式碼追蹤以提高效能的選項。
- 提供大量記憶體使用報告,包括視覺化層次圖和梯形圖(火焰圖)。
- 能夠使用線程並在單個線程的上下文中分析記憶體。 支援 Python 線程和本機線程,例如 C/C++ 模組中使用的 C++ 線程。
- 可以與 pytest 整合並提供定義記憶體消耗限制的 pytest 註釋,如果超出,將在測試執行期間產生警告。
來源: opennet.ru