2009-06-12 6 views
8

Mi piacerebbe sapere quali sono le esperienze con il garbage collector G1 nel nuovissimo JDK? Vedo lanciato il NullPointerException nel mio programma, sebbene il codice non sia cambiato e si sia comportato correttamente nei JDK precedenti.Esperienza con JDK 1.6.x G1 ("Garbage First")

+0

Ricordare che si tratta di una funzione sperimentale, quindi è necessario aspettarsi dei problemi. – Mark

+4

Puoi fornire un esempio di codice? C'è la possibilità che tu abbia esposto un problema di timing/concorrenza con il nuovo raccoglitore. –

+0

Ho ricevuto eccezioni casuali OutOfMemoryError principalmente su allocazioni di array. Con il normale GC, non si verificano problemi. – akarnokd

risposta

2

Ho corso jEdit utilizzando:

-Xmx192M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC 

per l'ultimo paio di giorni sulle finestre. Non ho mai visto niente di sbagliato o di comportamento anomalo.

Ho anche provato a eseguire Intellij utilizzando G1 GC, non era giusto così bene. È durato un paio d'ore prima di crollare in un mucchio di caos, forse un po 'ottimista.

1

Ho provato e non ho riscontrato eccezioni. Ma le prestazioni del nostro server sono calate del 30% circa.

+1

È deludente che tu abbia visto un degrado delle prestazioni così significativo, ma è importante ricordare che un obiettivo importante del raccoglitore G1 è ridurre al minimo le pause. Con un cumulo di pochi GB o superiore, puoi ottenere più minuti di pausa quando GC viene eseguito con gli altri raccoglitori. Quindi, anche se G1 porta a tempi di risposta un po 'più lunghi, purché siano più coerenti e non mostrino mai il comportamento peggiore, questo sarebbe un grande miglioramento per alcune app. –

+1

dovresti pubblicare tutte le tue opzioni VM per noi qui in modo che possiamo confrontare con la tua "analisi del 30% delle gocce". – djangofan

3

un garbage collector avrà un impatto solo il prestazioni della vostra applicazione, non il suo correttezza. L'ho usato per Eclipse, solo per divertimento, e mi è sembrato stabile.

Vorrei cercare altrove la fonte delle eccezioni.

+10

Un errore nel garbage collector, d'altra parte, * può * influire sulla sua correttezza. Qualcosa di "sperimentale" mi dice che non è del tutto irragionevole mettere in discussione la situazione. :) –

+2

Sono d'accordo che è sperimentale e non lo userei per la produzione, almeno non con u14. –