|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
|
[Java] Problema gestione Heap
Ciao a tutti,
il mio problema è il seguente: Codice:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source) at java.lang.AbstractStringBuilder.append(Unknown Source) at java.lang.StringBuilder.append(Unknown Source) at javax.swing.plaf.basic.BasicTextUI.updateBackground(Unknown Source) at javax.swing.plaf.basic.BasicTextUI.installUI(Unknown Source) at javax.swing.JComponent.setUI(Unknown Source) at javax.swing.text.JTextComponent.setUI(Unknown Source) at javax.swing.text.JTextComponent.updateUI(Unknown Source) at javax.swing.text.JTextComponent.<init>(Unknown Source) at javax.swing.JTextField.<init>(Unknown Source) at javax.swing.JTextField.<init>(Unknown Source) at javax.swing.JFormattedTextField.<init>(Unknown Source) at javax.swing.JSpinner$DefaultEditor.<init>(Unknown Source) at javax.swing.JSpinner$NumberEditor.<init>(Unknown Source) at javax.swing.JSpinner$NumberEditor.<init>(Unknown Source) at javax.swing.JSpinner$NumberEditor.<init>(Unknown Source) at javax.swing.JSpinner.createEditor(Unknown Source) at javax.swing.JSpinner.<init>(Unknown Source) at javax.swing.JSpinner.<init>(Unknown Source) Il mio programma è una GUI che gestisce un numero piuttosto alto di componenti, il problema di sicuro non è un ciclo infinito o simili, basta che aggiungo tot elementi e il programma restituisce questo errore. Se nei Run Arguments di Eclipse inserisco: -Xms50m -Xmx250m funziona normalmente, impostando i nuovi valori attuali e max di heap. Però i problemi sono due: 1) l'indicatore di memoria heap di eclipse non mi segnala affatto tutto questo consumo di memoria, rimane intorno ai 25/40 MB occupati, sapete perchè fa cosi? 2) se utilizzo quelle impostazioni per lanciare il programma, funziona bene sotto eclipse ma se faccio un jar eseguibile non va affatto. Esiste un modo per creare un jar che imposti automaticamente la VM con i valori che mi servono? Altrimenti è abbastanza inutile.. Grazie
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
puoi postare il codice che gestisce l'inizializzazione di quel componente, certamente è possibile inizializzarlo
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Aug 2003
Città: Roma
Messaggi: 88
|
Non saprei proprio che postarti.. l'errore lo da in ogni caso io tenti di istanziare altri oggetti oltre un certo numero. Per fare una prova ho inserito ad esempio un
JPanel a = new JPanel(); for (int i=0; i<100; i++) a.add(new JSpinner()); e mi da l'errore, se invece provo a inserirne meno riesco ancora a rientrarci. Stessa cosa se addo un jcombobox o altri componenti. Però non capisco queste due cose: Quote:
Ad onor della cronaca l'errore lo segnala qui: Codice:
frame.setVisible(true); ![]()
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800 |
|
![]() |
![]() |
![]() |
#4 | ||
Member
Iscritto dal: May 2007
Città: Roma
Messaggi: 93
|
Quote:
Per cambiare la memoria dei programmi che lanci sotto eclipse devi configurare gli argomenti della VM sotto "run configuration" dove imposti Xmx Xms e tutto quello che vuoi Quote:
__________________
Più ti avvicini alla luce, più la tua ombra diventa grande (Kingdom Hearts - Walt Disney e Squaresoft, ma la mano è della Squaresoft) |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:31.