asp.net mvc 3 ram用法和缓存输出(varybycustom)

时间:2011-09-07 19:33:10

标签: asp.net-mvc asp.net-mvc-3 caching

我的网站存在问题,这是一个新项目,每天约有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);
    }

这是我用于覆盖的方法,但它不起作用。

1 个答案:

答案 0 :(得分:2)

.NET框架将采用它认为更好的RAM来缓存数据和页面。输出缓存可能不会对应用程序占用的RAM量做任何事情。如果服务器上没有其他线程请求RAM,.NET框架将不会将其释放到系统,因为当您的计算机上有足够的RAM时,它会更加性能。

你不应该担心这个。