2011-09-07 105 views
0

我有一個網站是一個新項目的問題,每天約500個獨立訪問者。其中一些訪問者在同一時間點擊了網站,我試圖告訴100位在線訪問者。asp.net mvc 3內存使用率和緩存輸出(varybycustom)

w3wp.exe的RAM的使用以預期開始,當我在幾個小時後查看服務器狀態時,RAM使用超過500M。

所以我決定緩存輸出並提高性能。 (如果您有任何建議,請告訴我關於內存問題,請讓我知道,即時新手在mvc 3)

我添加OutputCache屬性到所有控制器我有,然後我意識到有一個問題。我使用cookies來製作多種語言的網站,並且我有一段關於登錄用戶信息的部分。當用戶登錄或註銷時,它必須緩存並緩存它。

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); 
    } 

這是我用於重寫但它不工作的方法。

回答

2

.NET框架將花費它認爲更適合緩存數據和頁面的內存量。輸出緩存可能不會對應用程序所需的RAM量做任何事情。如果服務器上沒有其他線程正在請求RAM,則.NET框架不會將其釋放到系統中,因爲當您的計算機上有足夠的RAM時性能更高。

你不應該擔心這個。