您好:我有一个多线程Java应用程序。有许多临时对象。
-XX:MaxTenuringThreshold=1,我们在启动JVM时设置了上面的参数。这意味着所有的对象在gc期间都将存活一次,然后它将被提升到老一代。我们可以把这个-XX:MaxTenuringThreshold=10作为例子,这样在10次gc之后,这个对象就会被提升到旧的JVM旧版本。但在年轻的gc期间,这是否会导致不必要的复制操作(因为对象是从“eden”复制到“from”,从“from”复制到“to”,“from”,“to”是两个存活者缓冲区)?
这些问题也可能意味着如果a)年轻一代中有多次拷贝,较少的老一代gc,b)较长的老一代垃圾收集,但很少的年轻一代拷贝,哪一个更好地获得良好的性能?
发布于 2011-06-07 13:10:19
哪一个是“更好的性能”,这在很大程度上取决于你的应用程序和它的运行条件。您最大的希望是尝试各种垃圾收集选项,然后进行运行时和内存分析,以便在内存使用和速度之间取得最佳平衡。
遗憾的是,垃圾收集设置没有什么灵丹妙药。
https://stackoverflow.com/questions/6260771
复制相似问题