簡體   English   中英

在 Windows 中長時間跟蹤進程的內存使用情況的最佳工具是什么?

[英]What's the best tool to track a process's memory usage over a long period of time in Windows?

在很長一段時間內監視我的 C#/.Net Windows 服務的內存使用情況的最佳可用工具是什么。 據我所知,像 perfmon 這樣的工具可以在短時間內監控內存使用情況,但不能在很長一段時間內以圖形方式監控。 我需要幾天的趨勢數據,而不是幾秒鍾。

明確地說,我想在很長一段時間內以精細的細節級別監控內存使用情況,並讓圖表顯示整個時間范圍和細節級別。 我需要一個小的采樣間隔和一個大的圖表。

在我看來,Perfmon 是執行此操作的最佳工具之一,但請確保根據您希望監控的時間正確配置采樣間隔。

例如,如果你想監控一個進程:

  • 1 小時:我會使用 1 秒的間隔(這將生成 60*60 個樣本)
  • 1 天:我會使用 30 秒的間隔(這將生成 2*60*24 個樣本)
  • 1 周:我會使用 1 分鍾的間隔(這將生成 60*24*7 個樣本)

有了這些采樣間隔,Perfmon 應該可以毫無問題地生成漂亮的計數器圖形輸出。

好吧,我使用了 perfmon,將結果導出到 csv,然后使用 excel 進行統計。 上次我需要監控流程時效果很好

玩弄計算機管理(假設您在這里運行的是 Windows),似乎您可以讓它隨着時間的推移監控進程。 轉到計算機管理 -> 性能日志和警報,然后查看計數器/跟蹤日志。 右鍵單擊計數器日志並添加新日志。 現在單擊添加對象並選擇內存。 現在單擊添加計數器並將“性能對象”更改為進程,然后選擇您的進程。

與監控內存本身一樣好,您可能正在考慮使用內存分析來識別泄漏或陳舊對象 - http://memprofiler.com/是一個不錯的選擇,但還有很多其他選擇。

如果您想做一些非常具體的事情,請不要害怕編寫自己的基於 WMI 的記錄器在計時器上運行 - 您可以將其發送給您處理統計信息的電子郵件,當它增長太快或太高時發出警告,將其發送為用於圖表等的 XML。

我建議使用軟件驗證中的.Net Memory Validator工具。 這個工具幫助我解決了許多與我必須使用的 .Net 應用程序中的內存管理相關的不同問題。

我更頻繁地使用 C++ 版本,但它們非常相似,而且您可以真正實時看到正在分配的對象的類型這一事實對您來說是無價的。

如果您熟悉 Python,為此編寫腳本非常容易。

Activestate Python (免費)通過win32process模塊公開了 Win32 API 的相關部分。

您還可以查看所有與 win32 相關的模塊或使用gotAPI瀏覽 Python 標准庫。

如果您需要比 perfmon 更強大的功能,我會使用 ProcessMonitor。

暫無
暫無

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

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