.NET : 监控ASP.NET应用程序的缓存使用内存数变化和命中情况
在ASP.NET开发中,我经常强调,数据的合理缓存是对性能很重要的一个因素。关于ASP.NET的缓存,一般会有三种做法
1. 页面缓存
2. 控件缓存
3. 数据缓存
其中又以数据缓存这种方式最为灵活,用的最广。
我们不光要会做缓存,还需要评估缓存的使用情况,利用性能监视工具,可以很容易做到这一点。如下图所示
下面是我写的测试代码
/// <summary>
/// 创建100个缓存项目
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++)
{
Cache["cache_" + i.ToString()] = i * 100000;
}
}
/// <summary>
/// 读取100个缓存项目
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button2_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100; i++)
{
sb.Append(Cache["cache_" + i.ToString()].ToString());
}
Response.Write(sb.ToString());
}
/// <summary>
/// 随机读取10个缓存项目
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button3_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
Random rnd = new Random();
for (int i = 0; i < 10; i++)
{
sb.Append(Cache["cache_" + rnd.Next(99).ToString()].ToString());
}
Response.Write(sb.ToString());
}