在Windows中长时间跟踪进程的内存使用情况的最佳工具是什么?

时间:2020-03-06 14:23:49  来源:igfitidea点击:

什么是监视我的C#/。Net Windows服务的内存使用情况长时间的最佳可用工具。据我所知,像perfmon这样的工具可以在很短的时间内监视内存使用情况,而在很长的一段时间内不能以图形方式监视。我需要几天而不是几秒钟的趋势数据。

需要明确的是,我想长时间监视细微的内存使用情况,并让该图同时显示整个时间范围和详细程度。我需要一个小的采样间隔和一个大图。

解决方案

如果我们需要比perfmon更强大的功能,则可以使用ProcessMonitor。

好吧,我使用了perfmon,将结果导出到一个csv中,然后将excel用于统计。上一次我需要监视流程时,效果很好

我认为Perfmon是执行此操作的最佳工具之一,但请确保根据要监视的时间正确配置采样间隔。

例如,如果要监视过程:

  • 1小时:我将使用1秒间隔(这将生成60 * 60个样本)
  • 1天:我将使用30秒间隔(这将生成2 * 60 * 24个样本)
  • 1周:我将使用1分钟间隔(这将生成60 * 24 * 7个样本)

在这些采样间隔下,Perfmon应该可以毫无问题地生成计数器的图形化输出。

玩弄计算机管理(假设我们在这里运行Windows),似乎可以使其随时间监视进程。转到计算机管理->性能日志和警报,然后查看计数器/跟踪日志。右键单击计数器日志并添加新日志。现在单击添加对象并选择内存。现在单击添加计数器,并将"性能对象"更改为"进程",然后选择进程。

尽管可以单独监视内存,但我们可能会想到对内存进行概要分析以识别泄漏或者陈旧对象http://memprofiler.com/,这是一个不错的选择,但是还有很多其他选择。

如果我们想做一些非常具体的事情,不要害怕编写在计时器上运行的基于WMI的记录器,我们可以将其发送给我们以电子邮件发送给我们处理统计信息,并在其增长过快或者过高时发出警告,以XML格式发送用于制图等

如果我们熟悉Python,则为此编写脚本非常容易。

Activestate Python(免费)通过win32process模块​​公开Win32 API的相关部分。

我们还可以签出所有与win32相关的模块,或者使用gotAPI浏览Python标准库。

我建议使用软件验证中的.Net内存验证器工具。
该工具帮助我解决了许多与我必须一起使用的.Net应用程序中的内存管理相关的不同问题。

我经常使用C ++版本,但是它们非常相似,而且我们可以实时看到分配对象的类型,这对我们来说是无价之宝。