C# 如何以编程方式度量azure web/worker角色的内存使用情况?
我想记录承载在windows azure实例中的某些web/worker角色的内存使用情况 是否有一种方法可以通过编程检查当前使用的内存,以便将此值保存到某个地方供以后使用C# 如何以编程方式度量azure web/worker角色的内存使用情况?,c#,asp.net,azure,memory-management,C#,Asp.net,Azure,Memory Management,我想记录承载在windows azure实例中的某些web/worker角色的内存使用情况 是否有一种方法可以通过编程检查当前使用的内存,以便将此值保存到某个地方供以后使用 我找到的唯一信息是获取当前线程,然后调用一个方法,该方法应返回堆的内存使用情况。但我认为这对解决我的问题没有多大帮助,尤其是当存在一些异步调用时。Azure诊断是一个很好的起点。您可以添加任何您喜欢的性能计数器:内存消耗、CPU使用等 右键单击Azure项目中的角色并转到属性。 在配置下,您将看到诊断 勾选启用诊断并选择自定
我找到的唯一信息是获取当前线程,然后调用一个方法,该方法应返回堆的内存使用情况。但我认为这对解决我的问题没有多大帮助,尤其是当存在一些异步调用时。Azure诊断是一个很好的起点。您可以添加任何您喜欢的性能计数器:内存消耗、CPU使用等 右键单击Azure项目中的角色并转到属性。 在配置下,您将看到诊断 勾选启用诊断并选择自定义计划->编辑 在Performance Counters(性能计数器)下,选择您想要了解的内容。请注意,如果您的计算机上有不同的语言,则必须是计数器的英文名称 这些计数器将以表名WADPerformanceCounters保存在表存储器中
这篇文章也可能会有所帮助:我正在使用c,这似乎对我有用。简化: MS参考链接:
在我看来,这是一种很好的方法,因为它不需要操作代码。我仔细看了一下,似乎有人认为它有点慢。但一个不太完美的解决方案仍然比没有其他解决方案要好。谢谢你的信息!
try
{
long bytes = GC.GetTotalMemory(false);
return "RAM used: " + (bytes/1024/1024).ToString() + " MB";
}
catch (Exception ex)
{
return "No RAM info available!";
}