托管语言的缓存方案

时间:2020-03-05 18:42:11  来源:igfitidea点击:

这主要是针对桌面应用程序开发人员的。
如何设计与GC配合良好的缓存块?
如何告诉GC我刚刚完成了缓存扫描,是时候进行GC了?
如何准确评估何时应该进行缓存扫描?

是否有任何我可以借鉴的预建缓存方案?

解决方案

回答

我们将需要了解的所有信息(然后是一些信息):

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

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

回答

虽然我显然不能说出应用程序的细节,但是在大多数情况下,我们不应该将缓存实现与对GC如何工作的某些期望结合在一起。正如Stu所提到的那样,调用GC.Collect()会强制收集(特定世代有重载),但这样做通常比让GC管理自身更糟糕。

如果确实(在进行了一些实际的性能测试之后)发现需要与GC交互,请确保考虑到框架当前具有的不同类型的GC(请参阅此处以获取更多信息)。