La mia applicazione Java esegue un'altra applicazione Java, eseguendo il processo "java -jar j.jar". J.jar è noto per utilizzare un sacco di memoria a seconda del set di dati che viene fornito, e spesso ottiene un heap OutOfMemoryError. Quindi voglio usare -Xmx su di esso, in modo da poter allocare più memoria possibile (o vicino). Stavo pensando di ottenere la memoria totale sul sistema, quindi di specificare l'80-90% di quello in -Xmx.Java -Xmx, memoria massima sul sistema
C'è qualche soluzione al mio problema? E come suona la mia soluzione?
Modifica: Non riesco a ridurre il consumo di memoria poiché la memoria utilizzata è la compressione pack200 integrata di Java, che sto utilizzando per il confezionamento di alcuni file JAR.
Così si sta effettivamente chiedendo come utilizzare Java per determinare la quantità di memoria di sistema? –
Sì, sarebbe una soluzione possibile, e se conosci un modo, sapendo che sarebbe apprezzato. –
stai usando un jvm a 64 bit? perché se stai usando un 32 bit, allora avrai problemi con il bit '80% 'se il tuo mem gratuito diventa 7G, ad esempio –