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
