Привет: у меня есть многопоточное Java-приложение. Есть много временных объектов.
-XX:MaxTenuringThreshold=1
, мы указали выше параметр при запуске JVM. Это означает, что все объекты будут выживать один раз во время gc, а затем будут переведены в старое поколение. Можно ли, например, указать -XX:MaxTenuringThreshold=10
, чтобы объект был переведен в старое поколение JVM старого поколения после 10 раз gc. Но вызовет ли это ненужную операцию копирования во время молодого gc (поскольку объекты копируются «из« eden »в« from », из« from »в« to »,« from »,« to »- это два буфера оставшихся в живых)?
Вопросы могут также означать, если а) имеется многократное копирование в молодом поколении, меньше старого поколения gc, б) сборка мусора старого старого поколения, но мало копий молодого поколения, какой из них лучше для хорошей производительности?