GC是什么时候运行的?它是否像是在一定的时间间隔内运行,或者当应用程序需要内存或什么?GC何时运行?
GC何时运行?
回答
简答:当需要时。
较长的答案:
- 当分配不能兑现
- 当一个AppDomain被卸载
- 当Windows报告内存不足
- 当GC.Collect的叫
此外,定稿可能会在GC后的某个时间点运行。
它是特定于实现的,这意味着即使你知道这些规则,你也不应该在它们周围构建任何东西。它可能在未来发生变化。实际上,我认为管理内存管理的研究很可能不是很长的一段时间。 – 2010-09-24 07:36:21
@Lasse:好点,所以我想这个建议只是坚持简短的答案。 – 2010-09-24 07:38:06
是的,我认为这个答案的必然结果是“,这就是你需要知道的。” – 2010-09-24 09:29:14
从MSFT(见链接查看更多细节):
.NET框架的垃圾回收器 管理您的应用程序分配和 内存释放。每次您创建一个新对象 时,常见的 语言运行时将为托管堆中的对象分配内存。由于地址空间在 托管堆中可用,因此 继续为新的 对象分配空间。但是,内存不是无限的 。垃圾 收集器必须执行收集 为了释放一些内存。垃圾 收集者的优化引擎 根据分配 确定执行收集的最佳时间,其中 正在进行。当垃圾收集器 执行收集时,它会检查 应用程序不再使用的托管堆中的对象 ,并执行必要的 操作以收回其内存以回收其内存。
1. .NET Framework的垃圾收集器管理您的应用程序的内存分配和释放。
- 每次创建对象时,运行时间分配 内存从托管堆中的对象。 3.垃圾回收器必须按 的顺序执行收集以释放一些内存。垃圾收集器的优化 引擎根据所做的分配确定执行收集的最佳时间, 。 4.当垃圾收集器执行收集时,其 将检查托管堆中不再有 被应用程序使用的对象,并执行必要的 操作来收回其内存。
- 1. adobe AIR:阻止GC运行
- 2. 如何防止git gc在提取时自动运行
- 3. 完整的GC - Sun JVM运行频率
- 4. 什么导致完整的GC运行?
- 5. 如果permgen填满,GC会运行吗?
- 6. 运行时间太长,对于GC偏斜
- 7. 针对少量和长时间GC运行的JVM调优
- 8. 小GC和全GC在同一时间?
- 9. Java CMS GC行为
- 10. Java GC日志行之间有什么区别? (“总共历时......” VS“[GC”)
- 11. 如何检查/比较并行GC线程和Conc GC线程的输出?如何解决GC线程值?
- 12. 如何在运行pdfjs时运行javascript?
- 13. 何时将发布boehm-gc 7.6
- 14. 何时检查是否需要GC?
- 15. Monodroid:执行完整的GC
- 16. Spotify docker-gc:防止第一次运行后自动停止
- 17. 甚至当我推到远程,GC不会出现运行
- 18. 什么GC参数是与JVM一起运行的?
- 19. 爪哇 - GC应用程序运行速度慢
- 20. 我的应用程序不断运行完整的GC!
- 21. JVM是否保证在抛出OutOfMemoryError之前运行GC?
- 22. Java GC在最小分配后运行非常频繁
- 23. GC需要多长时间?
- 24. GC中的平均时间
- 25. 'after_filter'如何/何时运行?
- 26. 来自GC日志的GC暂停持续时间
- 27. 在运行时如何在运行时更改属性值
- 28. 作为cronjob运行时如何处理Java运行时错误
- 29. “java.lang.OutOfMemoryError:超出GC开销限制”中的过长GC时间的持续时间
- 30. 如何在运行时
就我所知,有一种确定GC是否即将运行的方法。反正也不容易。 – 2010-09-24 07:29:58
@Matt:您可以注册完整的GC通知。见http://msdn.microsoft.com/en-us/library/system.gc.registerforfullgcnotification.aspx – 2010-09-24 07:44:38
@Brian Rasmussen:谢谢!我不知道那件事。 – 2010-09-24 08:06:18