java - 有没有什么办法可以关闭 GC 执行,直到可用内存接近零?

标签 java optimization garbage-collection

只是好奇。如果您有 4Gb 的可用内存,并且每分钟会产生 10k 的垃圾。 GC会每分钟触发一次吗?在我的情况下,最好延迟 GC 或根本不执行它。对于完成此类任务的最佳 GC 有什么想法和想法吗?

最佳答案

不,默认的垃圾收集器(串行GC)只有在内存满了(Eden 空间或老年代空间)时才会运行。

如果您想在您的情况下最小化垃圾收集器的运行时间,请尝试最大化 Eden 空间:

java -Xms2g -Xmx3g -XX:NewSize=500m -XX:MaxNewSize=1024m yourApplication

上述设置,将以 3g 最大内存运行您的应用程序,并且 Eden 空间最大为 1g,因此任何新分配的对象都将存储在该空间中,并且(默认)垃圾收集器在此之前不会运行空间充满了物体。

关于java - 有没有什么办法可以关闭 GC 执行,直到可用内存接近零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9849256/

相关文章:

java - 黑白 Clock.systemUTC() 和 System.currentTimeMillis() 的区别

java - JNI方法CallObjectMethod、CallObjectMethodV和CallObjectMethodA有什么区别?

mysql - 为什么 MySQL 使用错误的索引?

algorithm - 定义一个函数使对称矩阵相等

c# - 计算排队等待垃圾收集的对象总数

java - 数组复杂度中的 K 个最大元素

java - ClassLoader.getSystemClassLoader().getResource() 在 servlet 容器和测试环境中的不同行为

绝对值的编译器优化

android - Android 上的 WeakReference 有什么问题吗?

c# - uipopover Controller 正在分配单点触控