Я заметил, что каждая молодая коллекция мусора с java 7 занимает в среднем 10 миллисекунд, чем с java 6. Я использую 1.6.0_31
и 1.7.0_21
. Конфигурация не изменилась, и не имеет аппаратных средств, JVM аргументы:Молодежная коллекция мусора более длинная пауза с java 7 vs java 6
-server -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+TieredCompilation -XX:+AggressiveOpts -Xms1g -Xmx1g -XX:MaxNewSize=256m -XX:NewSize=256m
- Java 7:
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 26176.0 26176.0 3531.6 0.0 209792.0 21648.8 786432.0 86777.6 49472.0 49350.1 82 1.830 0 0.000 1.
- Java 6
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 26176.0 26176.0 0.0 1210.5 209792.0 95873.4 786432.0 65327.1 35968.0 35891.2 83 0.620 0 0.000 0.620
Я также посмотрел на каждого человека раз, а с java 6, каждый YGC
занимает ~ 10 мс против java 7 составляет 20 мс. Что-то изменилось между версиями 6 и 7, которые могли бы объяснить это поведение?
EDIT: Я заметил, что java 7 работает в режиме 64 бит, тогда как java 6 использует 32-битную JVM, может ли это объяснить разницу?
Благодаря
Я подозреваю, что размер eden и молодого поколения по умолчанию различен, и это может изменить такое поведение. Можете ли вы распечатать фактические размеры? –
Различные алгоритмы или разные параметры. –