提十个有趣的关于.Net CLR,GC的PopQuiz
近日研究CLR和GC,在msdn blog上面看到MS CLR测试小组的一个女技术员提出了十几个问题,感觉问题都挺有趣,也有一定的难度,遂加以修改,删除了几个又添加了几个,广泛征集回答 ^_^
1. 一个托管进程,如果运行在一个双核CPU的机器上,GC是运行于Server GC模式,在假设CPU没有Hyper thread功能的话,这个托管进程会有几个GC Thread?可以用调试工具来证明你的判断吗?
2. 在一个多核的服务器上,如果运行一个winform app程序,这个程序对实时响应的要求比较高,应该使用哪种GC模式?为什么?(可以选择Server GC,Workstation GC,Concurrent-Workstation)
3. 在什么情况或者什么操作下,会进行一次垃圾回收?
4. 什么使一个Object从Generation 0移动到Gen 1,或者是从Gen 1到Gen 2?Pinned Objects呢?
5. 如果一台机器是四核CPU,在运行Server mode的GC和Workstation Mode的GC的时候,分别有多少个GC Heap?
6. 在Dotnet Framework 2.0下,如果发现一个进程里面加载了mscorwks.dll,那么可以因此判定这个线程是运行在Workstation Mode的GC下面?
7. 可以手工的改变一个进程的GC运行模式吗?在什么样的情况下如何修改?
8. 为什么要在打开一个数据库连接时候用完了就关闭这个连接?GC不会给我们处理这些事情么?
9. Strong References,Weak Reference,Pinned Reference有什么区别?
10. 在Large Object Heap中,所有的大对象是没有经过筛选顺序堆放在一起的吗?
也没有真正的标准答案,回答的有理有据就对。
如果大部分的问题对于你来说都是小case,那么赶紧告诉我你的msn吧,俺这里还有一大票Puzzling Question Queue…..
posted on 2008-02-29 09:58 lbq1221119 阅读(3863) 评论(14) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述