.NET 4.0内存缓存性能计数器在哪里?

32

.NET 4.0 MemoryCache 的性能计数器在哪里?

我正在寻找它们的名称,但找不到任何信息。

谢谢。

1个回答

76

这是一个问题很多的问题,需要给出非常长的答案。我怀疑这不会有帮助,让我们谈谈你试图解决的真正问题。在您查看它们之前,这些性能计数器必须首先被注册。

启动提升的控制台提示符(右键单击快捷方式并使用“以管理员身份运行”),然后输入这些命令:

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
lodctr netmemorycache.ini

这将添加必需的注册表项,以便MemoryCache可以在运行时创建这些计数器。启动程序以创建MemoryCache实例。运行Perfmon.exe,右键单击图形,选择添加计数器,然后从添加的“.NET Memory Cache 4.0”类别中选择。同时选择您的程序实例。


1
非常感谢!!! 这正是我在寻找的。这让我有了另一个更重要的问题:这在哪里有记录?我搜索了所有地方都没找到“netmemorycache.ini”的有意义的痕迹。我觉得我错过了一些很重要的东西,因为整个MSDN都没有与此相关的文档。此外,添加这些计数器会有任何性能惩罚吗?如果有的话,完成性能分析后我可以卸载它们吗? - Allan Xu
1
我不知道,我只是自己摸索着解决了。花了我一些时间。别担心,性能计数器非常便宜。看起来这个问题已经得到了回答,请关闭它。 - Hans Passant
3
不只是一个,我研究了MemoryCache代码。在测试程序中发现私有字段为null,然后发现当MemoryCache尝试初始化它们时引发的异常。接着发现PerformanceCounter构造函数中的readOnly参数的含义,发现需要先创建它们。研究了.NET框架中如何使用其他类似的计数器,找到了关于这些计数器配置的谷歌搜索结果。这给了我LODCTR提示,从文件名很容易找到与之对应的.ini文件。 - Hans Passant
我曾经遇到过完全相同的问题,而这篇帖子解决了我的问题! - Andreas Presthammer
1
你真是个魔法师@HansPassant,我实在无法理解你是如何知道问题的答案的。 - Chris Marisic
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接