Ho questa applicazione web che richiede un po 'di ottimizzazione della memoria. Mentre sto già profilando l'applicazione stessa e tagliando le cose, la JVM stessa sembra eccessivamente gonfia per me nella nostra istanza più attiva. (Le istanze di volume più bassi non hanno questo problema.) I dettagli:Che impatto ha l'opzione -d64 sull'uso della memoria residente di Sun JVM?
- Piattaforma:
- RHEL4 a 64-bit (
Linux 2.6.9-78.0.5.ELsmp #1 SMP x86_64
) - Sun Java 6 (
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)
) - Tomcat 6 con
- RHEL4 a 64-bit (
- La mia webapp ha attualmente un codice che in produzione richiede i vantaggi di in esecuzione a 64 bit.
- Ho notato che dopo un po 'di tempo (una settimana) la dimensione della memoria residente della JVM (come mostrato in alto) è tre volte la dimensione della mia impostazione -Xmx.
- La dimensione della memoria non-mucchio, ecc sono tutte relativamente banali, una semplice percentuale singola cifra della dimensione heap
- C'è solo una sezione di codice che richiede uno spazio di indirizzamento bit 64 bit
Se potessi rifattorizzare la necessità di una JVM a 64 bit e rilasciare lo switch -d64
, ciò renderebbe più piccolo l'ingombro di memoria residente della JVM? In altre parole ...
Qual è l'impatto, se presente, dell'interruttore -d64
sull'utilizzo della memoria residente di Sun JVM?
Risposta fantastica. Mi hai convinto a rifattorizzare il mio codice e rilasciare il -d64. Tornerò e commenterò come va.Lavorerò anche su un aggiornamento JVM, quindi posso provare -XX: + UseCompressedOops. Grazie. Hai vinto il premio * Stu's World Famous "Awesome Coder of the Month" * per settembre 2009! –
Wow, non ho mai saputo che google-fu avrebbe chiarito una simile reazione. Grazie, sono stupito dalla tua risposta! A proposito, se riesci a mantenere il tuo heap a meno di 4 GB, la tua JVM a 64 bit si comporterà come una a 32 bit; non sono sicuro di alcun impatto sulle prestazioni. –
Più di Google-fo !!! Mi ero guardato intorno e stavo pensando che sarebbe valsa la pena ... ma ci sono * soooo * molti switch JVM, valori e if-then-but cases e gotchyas. Può essere opprimente, e il mio bisogno era di "* farlo" */* "non disturbare" * risposta, accompagnata da un cucchiaio di alimentazione pertinente. Grazie ancora. –