Recolección de basura de Java - Nueva Umbral

me encanta aprender :

Asumo que los objetos en la generación joven deben sobrevivir 15 menores GC (máximo 15) antes promovido a la vieja generación o generación Titular.

Lo que hace nuevo umbral de media y cómo afecta a la generación joven JVM GC, GC o menor?

¿Quiere decir que la generación joven no es lo suficientemente grande como para que la JVM para realizar 15 GC en los objetos?

En el siguiente ejemplo, el nuevo umbral es 10. ¿Quiere decir que tengo que aumentar el tamaño de la pila, o particularmente en la generación joven?

Desired survivor size 121634816 bytes, new threshold 10 (max 15)
PSAdaptiveSizePolicy::compute_eden_space_size: costs minor_time: 0.004921 major_cost: 0.047628 mutator_cost: 0.947450 throughput_goal: 0.990000 live_space: 330899520 free_space: 1115684864 old_eden_size: 419430400 desired_eden_size: 436207616
AdaptiveSizePolicy::survivor space sizes: collection: 28 (125829120, 113246208) -> (125829120, 121634816) 
AdaptiveSizeStop: collection: 28 
[PSYoungGen: 421856K->10080K(532480K)] 785165K->373389K(1269760K), 0.0312765 secs] [Times: user=0.25 sys=0.00, real=0.03 secs] 
2018-07-04T02:09:01.886+0800: 359.263: [GC (Allocation Failure) AdaptiveSizePolicy::update_averages:  survived: 4587536  promoted: 0  overflow: false
AdaptiveSizeStart: 359.286 collection: 29 
  avg_survived_padded_avg: 111951304.000000  avg_promoted_padded_avg: 43516000.000000  avg_pretenured_padded_avg: 41.070663  tenuring_thresh: 11  target_size: 113246208
Speakjava:

La generación joven está dividido en tres regiones: un espacio de Edén y dos plazas de sobrevivientes. La mayoría de los objetos (objetos muy grandes serán la excepción) se asignan en el espacio Edén mediante un sencillo (y rápido) Método de chocar puntero. Cuando el puntero alcanza el extremo del espacio de Edén, un menor CG tiene que ocurrir. En lugar de promover todos los objetos en la antigua generación de inmediato, se les permite sentarse en un espacio de supervivencia durante un periodo de tiempo para darles más tiempo para convertirse en basura y reducir la carga en la antigua colección gen.

Hay dos espacios de supervivencia; uno es el 'de' espacio (objetos que contienen actualmente) y uno es el 'a' espacio (efectivamente vacío). datos en tiempo real desde el Edén se copian en la 'a' espacio, así como cualquier objeto que aún se encuentran en vivo y no han alcanzado el umbral nuevo en el 'desde' el espacio. Las funciones de los dos espacios de sobrevivientes se invierten entonces ( 'a' se convierte en 'de', 'desde' se convierte en 'a') listo para el siguiente GC menor.

Los objetos en el espacio de supervivencia que han alcanzado el umbral nuevo (a menudo llamado tenuring) son promovidos a la vieja generación.

Está claro que si sus objetos de aplicación asigna a un ritmo más rápido que los espacios de supervivencia pueden manejar la GC promoverá objetos con mayor rapidez. El parámetro que afecta este es el MaxTenuringThreshold, que es un máximo, no un valor definido.

Se puede sintonizar el tamaño de las regiones con una variedad de parámetros. Lea esto para más detalle:

https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/sizing.html

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=219143&siteId=1
Recomendado
Clasificación