我可以实施啥来深入学习.net GC
Posted
技术标签:
【中文标题】我可以实施啥来深入学习.net GC【英文标题】:What could i implement to learn .net GC in depth我可以实施什么来深入学习.net GC 【发布时间】:2013-06-14 05:21:28 【问题描述】:我知道 Richter 的书中有关它如何工作的一些细节,但我想在实践中“感受”它。我看到了一些变体:
-
按 .NET 标准编写我自己的 GC 实现(开个玩笑,我自己做太难了:)
研究 GC 的 MONO 实现 - 它有一些优点(例如,我可以使用调试器分析一些案例),但另一方面,它与阅读书籍并没有太大区别。顺便说一句,据我所知,MONO 的实现确实与微软的不同(如果我错了,请纠正我)。
那么,有什么建议吗?
【问题讨论】:
我同意,与 CLR GC 相比,Rotor 和 Mono 的垃圾收集器实现非常不同。冒着公然自我推销的风险,我认为我的书(“Pro .NET Performance”,amazon.com/Pro-NET-Performance-Optimize-Applications/dp/…)比“CLR via C#”有更多关于垃圾收集的细节。 这不是 SO 的问题。 (您试图解决的技术问题在哪里?) 【参考方案1】:好吧,您可以编写一个资源密集型服务器应用程序,它可以让您大致了解 GC 在高负载下的作用。你可以选择任何你想要的东西,最好是网络服务器、MMO 服务器等。
您将了解 GC 在复杂情况下如何管理托管堆(尤其是异步套接字使 GC 非常不满意,这要归功于它们使用固定句柄),并且您可以尝试如何最好地分配不同类型的内存资源,以使 GC 的工作尽可能简单。
而且你可以编写自己的 GC,愚蠢的 GC 并没有那么难。
【讨论】:
以上是关于我可以实施啥来深入学习.net GC的主要内容,如果未能解决你的问题,请参考以下文章
《深入理解java虚拟机》学习笔记四/垃圾收集器GC学习/一