托管语言的缓存方案

时间:2008-08-22 18:50:52

标签: caching garbage-collection

这主要面向桌面应用程序开发人员。
如何设计一个与GC配合良好的缓存块?
如何告诉GC我刚刚进行了缓存扫描,是时候进行GC了?
如何准确测量何时进行缓存扫描?

是否有任何预先构建的缓存方案可以从中借用一些想法?

2 个答案:

答案 0 :(得分:1)

你需要知道的一切(然后是一些):

http://msdn.microsoft.com/en-us/library/ee817645.aspx

哦,GC.Collect()强制收集。

答案 1 :(得分:1)

虽然我显然无法谈论您的应用程序的细节,但在大多数情况下,您不应将缓存实现与GC的工作方式结合起来。正如Stu所提到的,调用GC.Collect()将强制收集(具有特定代的重载),但更多时候这样做会导致性能更差,而不仅仅是让GC管理自己。

如果您确实发现(在进行了一些真正的性能测试之后)需要与GC进行交互,请确保考虑到框架当前具有的不同类型的GC(有关详细信息,请参阅here