【发布时间】:2012-03-12 15:25:26
【问题描述】:
我有这段缓存代码
public static ICollection<Messages> GetMessages()
{
if (System.Web.HttpContext.Current.Cache["GetMessages_" + user_id] == null)
{
using (DataContext db = new DataContext())
{
var msgs = (from m in db.Messages
where m.user_id == user_id
&& m.date_deleted == null
select m).ToList();
System.Web.HttpContext.Current.Cache.Insert(
"GetMessages_" + user_id, msgs, null,
DateTime.Now.AddMinutes(5), TimeSpan.Zero);
}
}
return System.Web.HttpContext.Current.Cache["GetMessages_" + user_id]
as ICollection<Messages>;
}
第一次运行时,它从一个 SQL 表中拉取数据,大约需要 1500 毫秒。每次后续调用大约需要 600 毫秒。我正在测试的集合目前只包含 3 个对象,每个对象的数据最少(一个字符串、3 个日期时间字段、3 个布尔值和 5 个整数)
这正常吗?每次加载一个包含如此少量数据的页面几乎需要 2 秒。
[仅供参考,这只是在开发机器上运行,而不是完全成熟的 Web 服务器。正在从远程服务器提取数据,但这只会影响初始页面加载]
【问题讨论】:
-
您在 VS 开发 Web 服务器中运行它时是否偶然注意到这种缓慢?
-
是的...这可能是问题吗?
-
当然调试会慢一些,开发web服务器也不会有IIS的性能,但是我看到很多抱怨它有多慢,经验丰富我自己。您可以查看以下内容:stackoverflow.com/questions/5237340/… 和 stackoverflow.com/questions/4264100/…
-
@HackedByChinese,好东西!你介意把它变成一个答案吗?希望 roryok 会接受。
-
是的,如果你发布它,我会接受。
标签: c# asp.net-mvc linq caching razor