java如何在jvm gc中优化大型短期对象
我们遇到了一个关于jvm gc的问题。我们有一个大型QPS应用程序,jvm堆内存增长非常快。它会在几秒钟内使用超过2g的堆内存,然后gc触发器每次也会收集超过2g的内存。gc收集情况如下图所示。所以这有两个问题
- 我需要一些时间。更重要的是,它是经常发生的李>
- 系统将无法稳定李>
public static void fun1() {
for(int i = 0; i < 5000; i++) {
Byte[] bs = new Byte[1024 * 1024 * 5];
bs = null;
}
}
所以,我有一些问题:
- 很多人说set object equals null可以让gc线程更容易地收集数据。这是什么意思?我们都知道,当JVM无法为新对象分配空间时,总会触发次要GC。因此,一个对象是否
如果为空,则仅当空间不足时才会触发gc。所以set object为null没有意义李> - 如果存在大型短命对象,如何优化此功能?我的意思是如何收集这些物品,而不是在年轻一代还不够的时候李>
任何建议都会对我有帮助
共 (0) 个答案