我正在寻找应用程序本身监视其使用的内存量的方法,因此我可以每小时左右将其记录在日志文件中,并密切关注应用程序的使用情况.
它全部托管,因此我们可以对系统进行更改以查看正在发生的事情,因此解决方案必须来自应用程序代码.
我们将来可能会使用内存信息来影响缓存策略.
嗯,你需要多详细的信息?如果您只想使用内存,可以询问GC.它知道.;)
long bytes = GC.GetTotalMemory(false); // use 'false' to not wait for next collect
变量'bytes'将包含当前在托管内存中分配的字节数.我不确定托管内存是需要整个进程还是只需要AppDomain.您必须通过在一个进程中运行多个AppDomain来测试这一点,并查看是否通过AppDomains测量了托管内存分配.如果他们不这样做,那么您可以使用它来测量ASP.NET应用程序中的总内存使用量.
如果您需要更具体的信息,可以使用CLR的诊断API,您可以与其进行交互.还有很多内存分析器,但是如果它们在ASP.NET应用程序中工作我就不能说了.