2013-01-09 76 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缓存块不支持内存(或磁盘上的压缩)。