Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    22

    Java out of memory: heap space

    Ciao a tutti,
    so che è un problema discusso un sacco di volte ma non riesco a uscirne.
    Sto eseguendo un programma che ha un discreto numero di variabili e di calcoli da dover fare per un numero di iterazioni massime che posso far variare.
    Fino a che tengo un numero di iterazioni non troppo elevato tutto va benone: quando inizio ad aumentarlo mi da l'errore
    codice:
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:2734)
        at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
        at java.util.ArrayList.add(ArrayList.java:351)
    In run configurations ho

    -Xms512M -Xmx2048M

    come impostazioni della memoria..
    Qualcuno ha un'idea per aiutarmi? Non so più cosa fare..
    Ultima modifica di LeleFT; 21-07-2014 a 10:12

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    22
    Non so se può essere utile.. la porzione di codice che mi torna questo errore è la seguente:

    codice:
    public List<Nodo> getShortestPathTo(Nodo target)
        {
            List<Nodo> path = new ArrayList<Nodo>();
    
            for (Nodo vertex = target; vertex != null; vertex = vertex.previous)
                path.add(vertex);
    
    
            Collections.reverse(path);
    
            return path;
        }
    deve solo fare calcoli..e non capisco perché se a volte vada e a volte no..
    Essendo List non posso neanche provare ad aumentare la capacità..

    Nessuno può darmi una mano?
    Ultima modifica di LeleFT; 21-07-2014 a 10:12

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Probabilmente non conta nulla, ma hai provato a mettere come opzione di esecuzione la m in minuscolo (ex -Xmx2048m) ??
    Se il problema non è questo deduco che tu stia facendo un dispendio di ram davvero esagerato, occupare giga di ram per un programma utente significa che o il programma è davvero oneroso in termini di risorse oppure (seppur il java a differenza del c, ad esempio, libera automaticamente le risorse "inutilizzate", molto spesso capita) stai sbagliando tu a livello di programmazione nella gestione delle risorse.

    Ultima modifica di zipangulu; 19-07-2014 a 17:40

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    22
    Niente ^^ Risolto! Non era un problema di memoria ma di cosa faceva il mio metodo..il codice che vi ho postato è un pezzo dell'algoritmo di Dijkstra.. : andava in out of memory perché non avevo controllato una condizione prima di eseguirlo.

    Vi ringrazio comunque!!!!!

Tag per questa discussione

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.