确定共享主机中 asp.net 缓存使用的内存

本文关键字:缓存 内存 net asp 共享 主机 | 更新日期: 2023-09-27 18:35:46

根据这个问题,我想知道asp.net的system.web.caching.cache对我有好处,还是应该使用数据库缓存?

因此,我需要知道系统正在使用多少内存。Web.caching.cache?但是由于我使用的是共享主机服务器,因此无法使用任务管理器。有没有办法使用一些代码来确定system.web.caching.cache使用了多少内存?

确定共享主机中 asp.net 缓存使用的内存

查看应用程序使用多少工作内存的一种快速方法是直接询问垃圾回收。

long bytes = GC.GetTotalMemory(false);
txtMemoryUsed.Text = bytes.ToString();

并使用此文字<asp:Literal runat="server" ID="txtMemorysUsed" EnableViewState="false" />

但是您可以使用 PerformanceCounter 获取更多详细信息,例如,您可以获取此代码使用的池使用的虚拟内存数:

 var oPerfCounter = new PerformanceCounter();
oPerfCounter.CategoryName = "Process";
oPerfCounter.CounterName = "Virtual Bytes";
oPerfCounter.InstanceName = "aspnet_wp";
txtMemorysUsed.Text = "Virtual Bytes: " + oPerfCounter.RawValue + " bytes";

您可以使用所有这些参数来获取池的信息。

Processor(_Total)'% Processor Time
Process(aspnet_wp)'% Processor Time
Process(aspnet_wp)'Private Bytes
Process(aspnet_wp)'Virtual Bytes
Process(aspnet_wp)'Handle Count
Microsoft® .NET CLR Exceptions'# Exceps thrown / sec
ASP.NET'Application Restarts
ASP.NET'Requests Rejected
ASP.NET'Worker Process Restarts (not applicable to IIS 6.0)
Memory'Available Mbytes
Web Service'Current Connections
Web Service'ISAPI Extension Requests/sec

例如,此参数获取 CPU 负载。

oPerfCounter.CategoryName = "Processor";
oPerfCounter.CounterName = "% Processor Time";
oPerfCounter.InstanceName = "_Total";
txtOutPut.Text = "Current CPU Usage: " + oPerfCounter.NextValue() + "%";

参考: http://msdn.microsoft.com/en-us/library/ms972959.aspx

相对:从应用程序内部监视 ASP.NET 应用程序内存

我已经在本地 IIS 和作品上进行了测试。