我们可以用java定制垃圾收集器吗?
正如我们所知,java的垃圾收集器是一个低优先级线程。在java中,我们可以创建任何具有高优先级的线程。因此,是否有可能拥有我们自己的具有可变优先级的定制垃圾收集器线程(我们可以根据内存管理级别进行设置) 有人试过吗。如果是,你能分享一些关于如何和其逻辑的知识吗?我们可以用java定制垃圾收集器吗?,java,garbage-collection,Java,Garbage Collection,正如我们所知,java的垃圾收集器是一个低优先级线程。在java中,我们可以创建任何具有高优先级的线程。因此,是否有可能拥有我们自己的具有可变优先级的定制垃圾收集器线程(我们可以根据内存管理级别进行设置) 有人试过吗。如果是,你能分享一些关于如何和其逻辑的知识吗? 谢谢我相信您必须部署自己的JRE/JVM。在Java中,没有办法关闭默认的垃圾收集 Java 7将使用一个全新的GC,因此应该可以将它们交换掉。Java的垃圾收集器不是“低优先级线程”。例如,垃圾收集通常并行使用多个线程。而且,当内存
谢谢我相信您必须部署自己的JRE/JVM。在Java中,没有办法关闭默认的垃圾收集
Java 7将使用一个全新的GC,因此应该可以将它们交换掉。Java的垃圾收集器不是“低优先级线程”。例如,垃圾收集通常并行使用多个线程。而且,当内存不足时,垃圾收集可以抢占任何应用程序线程
我建议您研究,以确定最适合应用程序的垃圾收集器类型,以及如何调整其参数。Java中的垃圾收集经过多年的精心调整。这是可能的,但不太可能,你正在做一些非常特殊的事情,在这方面有特殊的需要 但我认为更可能的是,无论您认为垃圾收集器有什么问题,都是应用程序中的问题。还有一些猜测:
- 您正在不必要地创建和丢弃大量对象
- 你有内存泄漏
- 应用程序中存在性能问题
- 你有不可能的绩效预期
玩得开心,但期待一场艰苦的战斗:)你为什么要这么做?GC的工作做得还不够好吗?然后在sun.com上提交一个问题:)我只是想知道我们可以用一些好的优先级来模拟它吗?模拟是为单元测试完成的。单元测试不测试性能。我不相信这是一个明智的做法。你为什么要这么做?更高的优先级并不意味着内存耗尽的可能性更小。GC总是,总是,总是被称为最后手段。如果失败了,那么要么代码效率低下,要么实际上需要更多内存。谢谢你,巴鲁克。。对此有一个想法,所以我想澄清一下我们是否能做到这一点。有多种不同的垃圾收集器可供选择,但是您可以选择最适合您的应用程序的垃圾收集器。的确,与JVM捆绑在一起的垃圾收集器经过了多次修订和升级。您最好的选择是分析您的应用程序。此外,与性能相关,您可以尝试将JVM设置为服务器模式而不是客户端模式;这可以提高性能。看见