2010-01-29 21 views
5

Quando si esegue lo stesso processo java (un jar) in Windows e Linux (Debian), il proces di Linux utilizza molto di più (12 MB vs 36 MB), appena all'avvio. Anche quando si cerca di limitare la dimensione dell'heap con -Xmx/Xms/etc, rimane invariato. Nulla di ciò che provo sembra aiutare e il processo richiede sempre 36 MB. Cosa spiega questa differenza tra Linux e Windows e come posso ridurre l'utilizzo della memoria?Differenza di utilizzo della memoria Java tra Linux e Windows

MODIFICA: Misuro la memoria con il task manager di Windows e il comando top di Linux. La JVM è la stessa e sono entrambi sistemi a 32 bit.

+1

Cos'altro è diverso, accanto al sistema operativo? Diversa versione di jvm? architettura diversa (ad esempio 64 bit contro 32 bit)? Tenere presente che i sistemi operativi non segnalano l'utilizzo della memoria allo stesso modo. È notoriamente difficile misurare l'effettivo utilizzo della memoria. – nos

+0

Come stai misurando l'utilizzo della memoria? So che 'kill -QUIT $ PID' ti darà alcune statistiche sull'utilizzo della memoria sotto Linux, ma non sono sicuro di quale sia l'equivalente per Windows. –

risposta

2

Si consiglia di utilizzare un profiler come VisualVM per ottenere una vista più granulare su cosa sta succedendo.

0

Una domanda vorrei chiedere per aiutarmi a capire meglio il problema è:

Fa profilo memoria lo sguardo di mia applicazione Java drammaticamente diversa sulle due piattaforme? Puoi rispondere eseguendo con -loggc e visualizzando l'output in un visualizzatore gc come HPjmeter. Dovresti provare a guardare un campione con una quantità statisticamente significativa di dati, forse trame da 1000 o 10000 gc. Se la risposta è no, sarei tentato di attribuire la differenza che vedi ai requisiti di allocazione dell'heap JVM per l'avvio. Come sottolineato da "nos", individuare la differenza può essere notoriamente difficile. Quando hai specificato il valore -Xmx su Linux, l'utilizzo della memoria ha superato il tuo valore Xmx?

0

Probabilmente sta misurando anche la memoria condivisa

Problemi correlati