2013-01-09 75 views
0

我正在構建企業級MVC ASP.NET應用程序,它使用企業庫4.1將大對象存儲到內存緩存中。壓縮內存中的緩存對象

對於每個用戶,對象大小範圍爲18-22MB。隨時可能有530個併發用戶。我有點擔心內存中物體的大小。任何人都可以提出 請建議我可以用來壓縮內存中的對象的任何模式?我還沒有看到有關Ent Lib 4.1支持壓縮內存緩存 開箱的任何文章。

減少緩存對象的數據大小不是一種選擇,因爲我們必須在內存中存儲3年的數據以避免往返Web服務的呼叫。

謝謝。

+1

我知道這聽起來有點輕浮,但是......確保你的服務器有足夠的內存? 22MB x 530用戶少於12GB,而且RAM(相對)便宜。而且,任何壓縮在使用前都需要解壓縮,這意味着您通常不會得到的開銷。比試圖將對象尺寸減小20%更多的RAM可能會更好。 – Damovisa

+1

您仍然可以使用Web服務器上的本地磁盤緩存或本地緩存數據庫(例如SQL Server Compact 4.0:http://www.microsoft.com/zh-cn/download/details.aspx?id=17876)或者像memcached(或者,我敢說,AppFabric緩存)。再說一次,530 * 22MB僅爲〜11.5千兆字節,因此只要您運行的是64位ASP.net,並且不超過2個,則具有16或24 GB RAM的現代Web服務器應該沒有任何問題GB對象限制(可以調整,但我認爲GC性能最終會急劇下降) –

+0

謝謝你們。 –

回答

1

Entlib緩存塊不支持內存(或磁盤上的壓縮)。