我们知道java的垃圾收集器是一个低优先级的线程。在java中,我们可以创建任何具有高优先级的线程。因此可以拥有我们自己的具有可变优先级的自定义垃圾收集器线程(我们可以根据内存管理级别进行设置)。
有人试过吗。如果是,你可以分享一些关于如何及其逻辑的知识吗? 感谢
答案 0 :(得分:10)
Java的垃圾收集器不是“低优先级线程”。例如,垃圾收集通常并行使用多个线程。而且,当内存不足时,垃圾收集可以抢占任何应用程序线程。
我建议研究Garbage Collection Tuning guide以确定最适合应用程序的垃圾收集器类型,以及如何调整其参数。
答案 1 :(得分:3)
Java中的垃圾收集已经过多年的精心调整。有可能但你不太可能做一些非常特殊的事情,在这方面有特殊需求。
但我认为更有可能的是,您认为垃圾收集器遇到的任何问题都是您的应用程序中存在的问题。更多猜测:
答案 2 :(得分:2)
是的,你可以,但它需要你做一些相当硬的核心JVM工作,因为你不能从正在运行的Java程序中做到这一点。最简单的入门方法可能是使用Jikes RVM,因为它是用Java编写的(IBM项目已经开源)。
玩得开心,但期待一场艰苦的战斗:)
答案 3 :(得分:0)
我相信您必须部署自己的JRE / JVM。无法关闭Java中的默认垃圾回收。
Java 7将使用全新的GC,因此应该可以将它们交换出来。