Sto sviluppando sulla piattaforma di sollevamento standard (maven e jetty). Sono più volte (una volta ogni due giorni) ottenere questo:Problemi PermGen con Lift e Jetty
Exception in thread "[email protected]" java.lang.OutOfMemoryError: PermGen space
2009-09-15 19:41:38.629::WARN: handle failed
java.lang.OutOfMemoryError: PermGen space
Questo è a mio ambiente dev. Non è un problema perché posso continuare a riavviare il server. Nella distribuzione non ho questi problemi quindi non è un problema reale. Sono solo curioso.
Non conosco troppo la JVM. Penso di essere nel giusto pensando che la memoria della generazione permanente sia per cose come le classi e le stringhe interne? Quello che ricordo è un po 'confuso con il modello di memoria .NET ...
Qualsiasi motivo per cui questo sta accadendo? Le impostazioni predefinite sono appena follemente basse? Ha a che fare con tutti gli oggetti ausiliari che Scala deve creare per oggetti Function e cose simili su FP? Ogni volta che riavvio Jetty con il codice appena scritto (ogni pochi minuti) immagino che ri-carica le classi ecc. Ma anche così, non può essere che molti possono? E la JVM non dovrebbe essere in grado di gestire un gran numero di classi?
Acclamazioni
Joe
Come menzionato nel https://web.archive.org/web/20150105090518/http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language. Articolo html: "Il garbage collector generazionale di JVM è ottimizzato per situazioni come questa e poiché gli oggetti creati in modo implicito sono di breve durata, avranno GC molto bene.". ma se quegli oggetti non sono di breve durata, questa è un'altra storia. – VonC