是.net系统范围内的垃圾收集器还是应用程序范围内的垃圾收集器?
在与我的同事讨论期间,我怀疑.net中的垃圾收集器是在系统范围内还是在应用程序范围内工作。
意味着每个具有自己的GC的应用程序是否会影响系统性能?
我对此有点困惑。
每个进程都有自己的托管堆,将分别收集。
没有系统范围的堆,因此没有系统范围的GC。
(如果你在同一个进程中运行多个CLR,他们每个人都有自己的GC。但这是非常罕见的情况。)
在.Net运行时的Workstation Server版本中,每个进程都有一个垃圾收集器。 GC为每个托管进程引入了CPU开销。
这是否会对系统性能产生影响取决于您拥有多少个托管进程以及是否花费了大量时间来收集垃圾。 您可以通过检查性能计数器“在GC中花费的时间百分比”来分析您的流程花费多少时间来收集垃圾。
每个应用程序都有自己的堆和.NET运行时实例,因此它也有自己的垃圾收集器线程。
请查看此页面( https://msdn.microsoft.com/en-us/library/ee787088.aspx ),尤其是在Managed Heap部分。 那应该回答你的问题。
上述就是C#学习教程:是.net系统范围内的垃圾收集器还是应用程序范围内的垃圾收集器?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/953657.html