use*_*592 2 java performance garbage-collection jvm permanent-generation
您好:我有一个多线程 Java 应用程序。有很多临时对象。
-XX:MaxTenuringThreshold=1, 我们在启动 JVM 时放置了上面的参数。这意味着所有对象都将在 gc 期间存活一次,然后将其提升到老年代。我们-XX:MaxTenuringThreshold=10可以举个例子,这样对象会在 10 次 gc 后提升到 old JVM old generation。但这是否会在年轻的 gc 期间导致不必要的复制操作(因为对象被复制“从 'eden' 到 'from'、从 'from' 到 'to'、'from'、'to' 是两个幸存者缓冲区)?
这些问题也可能意味着如果 a) 年轻代有多次复制,老年代 gc 少,b) 老年代垃圾收集时间长,但年轻代副本很少,哪个更好的性能更好?
哪一个是“更好的性能”在很大程度上取决于您的应用程序及其运行条件。您最好的希望是尝试各种垃圾收集选项,然后进行运行时和内存分析,以在内存使用和速度之间取得最佳平衡。
遗憾的是,垃圾收集设置没有灵丹妙药。
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |