Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Java Heap Memory

  1. #1
    Utente di HTML.it L'avatar di 511769
    Registrato dal
    Mar 2010
    Messaggi
    15

    Java Heap Memory

    Ciao a tutti!

    Diverso tempo fa ho avuto in un mio programmino l'errore citato nel titolo. Credevo di aver risolto il problema usano il comando java -Xmx<size> per aumentare la quantità di memoria allocabile dalla JVM, ma purtroppo non è così! Quando tento di creare un array di byte di grosse dimensioni(500mb o più)mi esce ancora quell'errore:ho pravato con -Xmx512m, -Xmx1024m, ma non cè stato nulla da fare...

    Qualcuno di voi mi saprebbe aiutare?

  2. #2
    Ciao,
    il problema si può verificare perchè l'array è una struttura dati che occupa un blocco unico di memoria continua, nel senso che ci devono essere 500MB di fila liberi senza "buchi" (spazi di memoria occupati da altre cose), questo è difficile con 1GB a disposizione, l'allocazione di memoria fallisce ed hai un OutOfMemoryError anche se hai molta RAM libera.

    Prova ad usare l'opzione -Xms che indica la memoria minima, con un valore alto ad esempio -Xms512m o più e hai da subito molto spazio e la JVM non dovrà chiedere al sistema operativo un blocco da 500MB quando allochi l'array, se tutto va bene puoi provare ad abbassare un pò il valore.

    Se questo non risolve, le cose che puoi provare sono, in ordine:

    - Modificare il programma in modo che usi vari array più piccoli invece di uno gigante.

    oppure

    - Passare da un array ad un altra struttura dati, ad esempio una LinkedList, che richiede più memoria di un array (circa il doppio nel caso dei byte) ma non in un blocco unico

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.