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

关于c#:在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进行统计。上次我需要监控一个过程时,这非常有效


与监视内存本身一样好,您可能正在考虑使用内存分析来识别泄漏或过时的对象 - http://memprofiler.com/在这里是一个不错的选择,但还有很多其他的。

如果你想做一些非常具体的事情,不要害怕在计时器上编写你自己的基于WMI的记录器 - 你可以通过电子邮件向你发送流程统计信息,当它增长太快或太高时发出警告,发送它作为用于图表的XML等


玩弄计算机管理(假设你在这里运行Windows),看起来你可以让它随着时间的推移监控一个过程。转到计算机管理 - >性能日志和警报,然后查看计数器/跟踪日志。右键单击计数器日志并添加新日志。现在单击添加对象并选择内存。现在单击添加计数器并将"性能对象"更改为"处理",然后选择您的流程。


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

我更频繁地使用C ++版本,但它们非常相似,而且您可以实时看到所分配对象的类型这一事实对您来说非常宝贵。


如果您熟悉Python,那么为此编写脚本非常容易。

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

您还可以查看所有与win32相关的模块,或使用gotAPI浏览Python标准库。


如果你需要比perfmon更强大的功能,我已经使用过ProcessMonitor。


推荐阅读

    linux命令补全工具?

    linux命令补全工具?,工具,系统,软件,地址,命令,名称,智能,环境,信息,终端,简

    纯命令行linux服务器?

    纯命令行linux服务器?,密码,服务,系统,命令,终端,地址,百度,情况,状态,公共,

    重启服务linux命令?

    重启服务linux命令?,网络,系统,服务,设备,工作,标准,名称,工具,命令,管理,Lin

    linux下命令访问服务?

    linux下命令访问服务?,服务,密码,状态,信息,地址,网络,认证,系统,号码,名称,l

    检查linux服务器命令?

    检查linux服务器命令?,系统,信息,状态,情况,时间,工具,网络,环境,服务,电脑,

    linux系统命令行工具?

    linux系统命令行工具?,工具,系统,工作,状态,命令,地方,标准,信息,环境,基础,L

    linux7关闭服务命令?

    linux7关闭服务命令?,系统,软件,服务,命令,电脑,状态,工具,管理,进程,用户,求

    linux服务器域名命令?

    linux服务器域名命令?,地址,信息,系统,网络,服务,环境,名称,网站,管理,电脑,l

    服务启动linux命令?

    服务启动linux命令?,服务,密码,信息,系统,名称,命令,文件,用户,下面,服务器,l

    linux服务器命令框?

    linux服务器命令框?,系统,情况,状态,信息,数据,软件,指标,服务,在线,工具,lin

    服务器linux命令教程?

    服务器linux命令教程?,系统,地址,密码,网络,设备,工作,服务,标准,连续,管理,

    linux删除服务的命令?

    linux删除服务的命令?,服务,系统,软件,平台,名称,管理,环境,产品,命令,文件,

    linux命令下载工具?

    linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文

    linux开机服务命令行?

    linux开机服务命令行?,系统,工作,地址,信息,服务,设备,数字,第一,设计,发行,l

    linux服务器分区命令?

    linux服务器分区命令?,系统,管理,信息,设备,时间,命令,基础,首次,平均,情况,l

    linux下看服务的命令?

    linux下看服务的命令?,服务,状态,系统,名称,信息,工具,命令,环境,网络,情况,

    linux好用的命令工具?

    linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,L

    linux常用命令行工具?

    linux常用命令行工具?,系统,工作,工具,地址,管理,信息,命令,软件,目录,基础,l

    linux服务器上传命令?

    linux服务器上传命令?,服务,软件,平台,数据,工具,系统,手机,电脑,设备,官网,

    linux命令行专业工具?

    linux命令行专业工具?,工具,系统,工作,信息,服务,环境,基础,命令,管理,发行,l