Ciao,

On Sat, May 4, 2019 at 4:12 PM [email protected]
[it-torino-java-jug] <[email protected]> wrote:
> L'impressione che ho è che Z sia un progetto meno maturo di Shenandoah, da 
> qui la sua semplicità.

No, Z è più semplice perché l'algoritmo di GC è molto più semplice e
perché c'è una sola GC barrier.
E perché hanno deciso che alcune cose non le fanno; per esempio non
c'è il fall back a FullGC.
Come maturità credo che siamo lì - hanno solo fatto scelte diverse.

> Sicuramente migliorerà con il tempo ma questo vale anche per Shenandoah.
>
> Con questa maggior sofisticazione c'è anche il rischio di complicarsi
> la vita e di effettuare un tuning o scegliere delle configurazioni non
> ottimali.
>
> Questo rischio c'è per tutti i GC di Java, G1 ha molti parametri difficili da 
> impostare ma è comunque utilizzato proficuamente.

Io ho esperienza di clienti che hanno dovuto abbandonare sia CMS sia G1.
E per quanto abbiamo provato a configurare G1, non c'era nulla da fare
per ridurre le pause.

> Se non hai problemi di RAM, imposti uno heap generoso e ZGC fa il resto.
>
> Se non ho problemi di RAM, imposto un heap generoso e Epsilon fa il resto :)
> Battute a parte credo che questo valga per tutti i GC.

No. Epsilon lo puoi usare solo se non fai *mai* GC.
Se devi fare GC, quasi tutti i collector - a parte Z e Shenandoah -
hanno una diretta dipendenza delle pause con la dimensione dello heap.
G1 usa delle strutture dati per "mappare" lo heap quindi più è grosso
lo heap più queste strutture dati mappano porzioni più ampie di
memoria e richiedono più processing.
Se fosse facile come dici tu per *tutti* i GC non ci si sarebbe dati
da fare con i GC concorrenti come Z e Shenandoah.
E' proprio il contrario anzi: dando più RAM ai "vecchi" GC avevi più
problemi, e certo non era una cosa che potevi fare alla leggera.
Invece con Z e Shenandoah puoi farlo tranquillamente.

> Condivido, ma dovendo optare tra un GC che funziona sempre ed un crash in 
> produzione la scelta è facile.

Io non ne ho visti di crash.
Seguo entrambe le mailing list e di report di crash recenti non ce ne sono.
Certo che ci saranno, ma ne ho visti anche con G1.

> Interessante, hai misurato anche il carico sulla CPU o altro?

No, solo le pause STW.

> Z comunque ha un problema non banale: il mancato supporto dei compressed oops.
> Gli heap minori di 32gb non sono rari, in questo caso Z richiede 
> sensibilmente più memoria di G1.

E Shenandoah ha il forward pointer in più.
Dipende da cosa intendi per "sensibilmente" ma non credo che si parli
di più del 10%.

-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz

Reply via email to