我的网站存在问题,这是一个新项目,每天约有500名独立访问者。其中一些访问者同时访问了网站,我试图告诉100个在线访问者。
w3wp.exe的RAM的使用从预期开始,当我在几个小时后查看服务器状态时,RAM使用率超过500M。
所以我决定缓存输出并提高性能。 (如果您有任何建议,请向我提出有关ram问题的建议,请告诉我,我是mvc 3的新人)
我将OutputCache属性添加到我拥有的所有控制器中,然后我意识到存在问题。我使用cookie来制作网站的多语言,我有一个关于记录用户信息的部分。当用户登录或退出时,它必须取消缓存并缓存它。
public override string GetVaryByCustomString(HttpContext context, string custom)
{
switch (custom)
{
case "UICulture":
return context.Request.Cookies["CurrentUICulture"].Value.ToString();
default:
return "";
}
}
and this controller's action.
[OutputCache(Duration = 60, VaryByParam = "none", VaryByCustom="UICulture")]
public ActionResult Uniques() {
return View(ukList);
}
这是我用于覆盖的方法,但它不起作用。
答案 0 :(得分:2)
.NET框架将采用它认为更好的RAM来缓存数据和页面。输出缓存可能不会对应用程序占用的RAM量做任何事情。如果服务器上没有其他线程请求RAM,.NET框架将不会将其释放到系统,因为当您的计算机上有足够的RAM时,它会更加性能。
你不应该担心这个。