Sto usando java "1.6.0_24" OpenJDK. A volte, quando eseguo il mio programma, tutto quello che ottiene è un messaggioImpossibile creare java VM --- come posso ottenere più messaggi di errore dettagliati?
Could not create the Java virtual machine.".
Altre volte, il programma viene eseguito perfettamente bene.
C'è qualche insieme di opzioni che posso aggiungere per ottenere un output più dettagliato sull'errore esatto (forse anche qualcosa di simile a un core dump?).
Questo non è probabilmente legato alla dimensione heap poiché in tal caso, si dà un messaggio di errore preciso e chiaro come: -
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Questo ho potuto risolvere con l'impostazione -Xms e -Xmx modo appropriato. Tuttavia, la JVM uscire senza stampare qualcos'altro non è molto utile.
Giusto per chiarire, la mia domanda riguarda la convinzione di più messaggi di errore dettagliati o qualche tipo di file di stato/core dump che posso quindi utilizzare per il debug.
Bene, ho una macchina con 64 GB di RAM e ho impostato -Xms su 100M. Mentre questa macchina fa parte di un cluster, la memoria libera è solitamente di circa 16 GB (che ho verificato eseguendo in alto su un terminale separato). Stessi problemi anche con questo ... (Ho altre macchine con meno RAM nel cluster ed è per questo che ho impostato -Xms a 100M per risolvere il problema _that_) – owagh
Non sono sicuro di cosa potrebbe essere più dettagliato di quello. L'allocazione della memoria è una delle prime cose che JVM inizializza. Ovviamente, il tuo problema deriva da parametri -Xmx non -Xms. JVM alloca l'heap alla dimensione massima durante l'inizializzazione. Il tuo limite massimo è troppo alto. Su JVM a 32 bit, è possibile utilizzare solo non più di 1,5 GB – gigadot