【发布时间】:2010-09-06 14:16:40
【问题描述】:
这主要面向桌面应用程序开发人员。
如何设计一个与 GC 配合得很好的缓存块?
我如何告诉 GC 我刚刚进行了缓存扫描,是时候进行 GC 了?
我如何准确衡量何时应该进行缓存扫描?
是否有任何我可以借鉴的预建缓存方案?
【问题讨论】:
标签: caching garbage-collection
这主要面向桌面应用程序开发人员。
如何设计一个与 GC 配合得很好的缓存块?
我如何告诉 GC 我刚刚进行了缓存扫描,是时候进行 GC 了?
我如何准确衡量何时应该进行缓存扫描?
是否有任何我可以借鉴的预建缓存方案?
【问题讨论】:
标签: caching garbage-collection
虽然我显然无法谈论您的应用程序的具体细节,但在大多数情况下,您不应将缓存实现与对 GC 工作方式的预期预期联系起来。正如 Stu 所提到的,调用 GC.Collect() 将强制收集(对特定代进行重载),但通常不这样做会导致比让 GC 自行管理更差的性能。
如果您确实发现(在进行了一些实际性能测试之后)需要与 GC 交互,请确保您考虑到框架当前具有的不同类型的 GC(有关更多信息,请参阅here)。
【讨论】:
【讨论】: