| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  21-11-2005, 11:59 | #1 | 
| Senior Member Iscritto dal: Apr 2005 Città: <-|-|-*|*-|-|-> 
					Messaggi: 347
				 | 
				
				[Java] java.lang.OutOfMemoryError
			 
		Ciao a tutti, sto scrivendo un programmino java.. l'ho testato con piccoli dataset (100kb)e mi funziona bene. Task manager dice che sono allocati 65 mega di memoria. In questo caso: il programma funziona correttamente, mi crea il file dei risultati e me lo visualizza. Poi provo con un dataset di (2,6mega), task manager mi dice che sono allocati 75 mega. In quest'altro caso invece il programma crea correttamente il file dei risultati ma non me lo visualizza nella textarea apposita. JBuilderX mi da il seguente errore: java.lang.OutOfMemoryError A questo punto credo devo riordinare il programma, stando attento a mettere a null gli oggetti che non mi servono più al termine di ogni operazione. Voi che ne dite? E' una questione di ordine o è una questione insormontabile di dataset troppo grandi? Thnks! | 
|   |   | 
|  21-11-2005, 15:12 | #2 | 
| Senior Member Iscritto dal: Jan 2001 Città: Milano 
					Messaggi: 5707
				 | 
		probabilmente la seconda. prova ad aumentare la dimensione massima dello heap, settandolo a metà della memoria fisica che hai sulla macchina. Se hai 512 mega: java -Xmx256m nome_classe_col_main | 
|   |   | 
|  22-11-2005, 14:16 | #3 | 
| Senior Member Iscritto dal: Oct 2002 Città: Roma 
					Messaggi: 1502
				 | 
		che intendi per dataset? e che ci fai? impostare i valori a null può servire ma non è detto che sia questo il problema, se un problema c'è, perchè potrebbe trattarsi effettivamente di struttura dati molto ingombrante e non puoi fare nulla per ridurla, quindi puoi solo aumentare la memoria a disposizione della jvm come ti è stato indicato.
		 
				__________________ Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals Ultima modifica di anx721 : 22-11-2005 alle 14:18. | 
|   |   | 
|  22-11-2005, 14:58 | #4 | |
| Senior Member Iscritto dal: Apr 2005 Città: <-|-|-*|*-|-|-> 
					Messaggi: 347
				 | Quote: 
 Come si fa a capire quanto spazio in heap occupa ciascuna istanza di una classe? Sarebbe utile per giostrarmi i diversi compiti. Ad esempio mi creo una classe statica che fa solo i calcoli. Poi creo tante istanze di una classe più piccola, contenete solo la struttura dati, e le do in input una alla volta alla classe statica. La quale appenderà ciascuna volta il risultato in un file. Dopo aver passato in input l'oggetto lo dealloco e chiamo System.gc() Potrebbe essere? O L'I/O da file rischia di divenire troppo pesante? Va bene fare tanti piccoli append, aprendo e chiudendo ogni volta un flusso di scrittura sul file? O queste operazioni sono troppo costose? Thnks! | |
|   |   | 
|  22-11-2005, 18:19 | #5 | |
| Senior Member Iscritto dal: Oct 2002 Città: Roma 
					Messaggi: 1502
				 | Quote: 
 
				__________________ Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals | |
|   |   | 
|  22-11-2005, 18:26 | #6 | 
| Senior Member Iscritto dal: Apr 2005 Città: <-|-|-*|*-|-|-> 
					Messaggi: 347
				 | 
		Tipo BufferedWriter? PS: ho provato a impostare la heap a 512 mega e fila tutto liscio... PPS: come si fa a capire quanti mega occupa un singolo oggetto in esecuzione? | 
|   |   | 
|  18-08-2011, 12:39 | #7 | 
| Senior Member Iscritto dal: Apr 2010 
					Messaggi: 1710
				 | 
		Perdonatemi se riprendo un topic di quasi 6 anni fa, ma vorrei sapere come si può aumentare la memoria virtuale di default della java virtual machine. Vorrei che il limite fosse di 512 mb (o eventualmente di più) ogni volta, senza dover impostare manualmente il parametro ad ogni esecuzione.
		 | 
|   |   | 
|  07-11-2011, 22:44 | #8 | |
| Senior Member Iscritto dal: Jan 2001 Città: Milano 
					Messaggi: 5707
				 | Quote: 
  ) | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 13:41.









 
		 
		 
		 
		








 
  
 



 
                        
                        










