我可以实施啥来深入学习.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学习/一

又一巅峰神作!14年工作经验大佬出品“JVM&G1 GC深入学习手册”,Github已评“钻级”!

深入理解 Java 虚拟机之学习笔记

深入理解学习Git工作流

深入理解JVM虚拟机13:再谈四种引用及GC实践

jenkins深入学习