Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Java Heap Space a seguito di addAll ArrayList

    Buongiorno a tutti,

    mi viene generata la seguente eccezione
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2760) at java.util.Arrays.copyOf(Arrays.java:2734) at java.util.ArrayList.ensureCapacity(ArrayList.java: 167) at java.util.ArrayList.addAll(ArrayList.java:474) at
    codice.Coppia.addGamma(Coppia.java:65)
    at codice.VettoreDescrittivo.getStatiSticheCoppie(Vet toreDescrittivo.java:136)
    at codicee.Main.main(Main.java:49)
    Questa eccezione viene generata all'interno del metodo getStatiSticheCoppie dopo diverse iterazioni del for che lo richiama.
    Al termien di ogni iterazione io metto a null l'arraylist che restituisce il metodo il Garbage Collector.

    Il metodo getStatiSticheCoppie ha più o meno questa struttura

    codice:
    ArrayList<Coppia> featureCoppie= new ArrayList<Coppia>();
     for(String parola: parole){
       etc..
      for(CoppiaStroke coppia: coppie) {
          etc..
          featureCoppie.get(featureCoppie.indexOf(coppia)).addGamma(coppia.getGamma());
    
    }
    }
    Il metodo addGamma invece
    codice:
        public void addGamma(ArrayList<Float> gamma) {
            this.numero=this.numero+gamma.size();
            this.gamma.addAll(gamma);
            
        }
    Cosa posso fare? Io di fatto ad ogni iterazione elimino quel arraylist.. quindi non capisco perché poi vada in out of memory. Ho provato anche con un clear dell'arraylist prima di metterlo a null ma niente...

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quanto hai impostato come heap iniziale?

    Hai provato ad usare un profilatore, come VisualVM, per capire dove viene usata tutta quella memoria?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Originariamente inviato da Alex'87
    Quanto hai impostato come heap iniziale?

    Hai provato ad usare un profilatore, come VisualVM, per capire dove viene usata tutta quella memoria?
    ho provato anche con -Xms1024m -Xmx1024m ma va comunque in eccezione...
    non ho usato un profilatore.. però io non capisco perché succede proprio da un punto di vista teorico..
    ho provato anche a definire l'ArrayList nella funzione chiamante in modo che non fosse una variabile locale del metodo.. la sitazione è migliorata un po' ma poi comunque genera l'eccezione

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.