Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-10-2009, 12:37   #1
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
[JAVA/SQL]Errore "Memory Exhausted" quando genero un script SQL enorme!!! help...

Su eclipse sto generando uno script SQL enorme ... e ad un certo punto mi da l'errore "memory exausthed near..." ...me lo da intorno alla 10000esima riga!!!
Non si tratta di un errore Java Heap Space (out of memory) il quale anche lui era comparso, ma l'ho risolto settando in run configurations l'argomento -Xmx1200m.
Ora nn so dove mettere le mani perchè online nn ho trovato nulla che facesse al mio caso!
ps Ho 2gb di ram

doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 12:50   #2
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
Quote:
Originariamente inviato da doctorAle85 Guarda i messaggi
Su eclipse sto generando uno script SQL enorme ... e ad un certo punto mi da l'errore "memory exausthed near..." ...me lo da intorno alla 10000esima riga!!!
Non si tratta di un errore Java Heap Space (out of memory) il quale anche lui era comparso, ma l'ho risolto settando in run configurations l'argomento -Xmx1200m.
Ora nn so dove mettere le mani perchè online nn ho trovato nulla che facesse al mio caso!
ps Ho 2gb di ram

...altre strade? tipo lo spezzare il tutto in piu' elementi?...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:11   #3
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
Quote:
Originariamente inviato da ally Guarda i messaggi
...altre strade? tipo lo spezzare il tutto in piu' elementi?...

...ciao Andrea...
...devo restituire una stringa che rappresenta lo script SQL tutto insieme, non a pezzi!
...hai qualche suggerimento?
Attualmente utilizzo uno StringBuffer per creare lo script e da problemi...con uno StringBuilder idem!!!

Ho letto qualcosa online sulla documentazione di eclipse ganymede e sembra sia un problema di buffer di memoria!

che ne dici?
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:33   #4
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Memory Exhausted è un errore tipico delle Virtual Machine... e/o di interpreti di linguaggi interpretati (penso si sia capito).

Memoria Esaurita? Bene... quanto è lunga la tua stringa? Quanti BIT va ad occupare?
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:35   #5
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
Memory Exhausted è un errore tipico delle Virtual Machine... e/o di interpreti di linguaggi interpretati (penso si sia capito).

Memoria Esaurita? Bene... quanto è lunga la tua stringa? Quanti BIT va ad occupare?
non ti so dire... so solo che l'errore l'ha generato intorno alla 10000esima riga dello script!

Cmq la memoria della JVM l'ho aumentata fino a 1,2gb!
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:36   #6
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da doctorAle85 Guarda i messaggi
non ti so dire... so solo che l'errore l'ha generato intorno alla 10000esima riga dello script!
Del sorgente... non è uno script.
Ok, generato intorno a quella i-esima riga. Va bene; cosa c'è a quella riga? Prima e dopo? Incolla un pò di codice va...

Inoltre... tu puoi avere anche 2GB di memoria ram... ma se invii una stringa che in bit supera quella lunghezza, lui te la tronca... o in questo caso, Memory Exhausted!
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:38   #7
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
x Ally...

Ho provato a "spezzare la stringa"...invece di restituire una stringa enorme ho restituito un Set<String> e poi da questo ho ricorstruito la stringa finale, ma non va...sempre quell'errore mi da!
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:42   #8
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
Del sorgente... non è uno script.
Ok, generato intorno a quella i-esima riga. Va bene; cosa c'è a quella riga? Prima e dopo? Incolla un pò di codice va...

Inoltre... tu puoi avere anche 2GB di memoria ram... ma se invii una stringa che in bit supera quella lunghezza, lui te la tronca... o in questo caso, Memory Exhausted!

la 10000esima riga non è di sorgente!!!!!!...è dello script e ne sono sicuro!

Considera che ho fatto una classe di prova "piccola" e l'errore fatidico si verifica quando faccio questa cosa:
String script=generationScript(...);

ecco l'errore...

........
........
........
UNION DISTINCT
SELECT DISTINCT 'a4', 'b1' FROM U alias_0 , U alias_1 , S alias_2 , R alias_3 WHERE alias_0.term2=alias_1.term1 AND alias_1.term2='b1' AND alias_1.term1=alias_2.term1 AND alias_2.term1=alias_2.term2 AND alias_3.term1='a4'
UNION DISTINCT
SELECT DISTINCT 'a4', 'b1' FROM T alias_0 , U alias_1 , U alias_2 , R alias_3 WHERE alias_0.term1=alias_0.term2 AND alias_0.term2=alias_1.term2 AND alias_1.term2=alias_2.term1 AND alias_2.term2='b1' AND alias_3.term1='a4' >: memory exhausted near ' U alias_2 , U alias_3 , T alias_4 , R alias_5 WHERE alias_0.term2=alias_1.term1' at line 10663
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:43   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da doctorAle85 Guarda i messaggi
x Ally...

Ho provato a "spezzare la stringa"...invece di restituire una stringa enorme ho restituito un Set<String> e poi da questo ho ricorstruito la stringa finale, ma non va...sempre quell'errore mi da!
Riempire tutto solo fino alla 9.900 riga e farsi stampare la memoria?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:45   #10
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da doctorAle85 Guarda i messaggi
la 10000esima riga non è di sorgente!!!!!!...è dello script e ne sono sicuro!

Considera che ho fatto una classe di prova "piccola" e l'errore fatidico si verifica quando faccio questa cosa:
String script=generationScript(...);

ecco l'errore...

........
........
........
UNION DISTINCT
SELECT DISTINCT 'a4', 'b1' FROM U alias_0 , U alias_1 , S alias_2 , R alias_3 WHERE alias_0.term2=alias_1.term1 AND alias_1.term2='b1' AND alias_1.term1=alias_2.term1 AND alias_2.term1=alias_2.term2 AND alias_3.term1='a4'
UNION DISTINCT
SELECT DISTINCT 'a4', 'b1' FROM T alias_0 , U alias_1 , U alias_2 , R alias_3 WHERE alias_0.term1=alias_0.term2 AND alias_0.term2=alias_1.term2 AND alias_1.term2=alias_2.term1 AND alias_2.term2='b1' AND alias_3.term1='a4' >: memory exhausted near ' U alias_2 , U alias_3 , T alias_4 , R alias_5 WHERE alias_0.term2=alias_1.term1' at line 10663
Intendevi la riga sql... allora.
Non vorrei far confusione tra sorgente java e sorgente sql. Script non ne vedo

Mi sa che stia andando in un infinite loop di mysql...
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:48   #11
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
Intendevi la riga sql... allora.
Non vorrei far confusione tra sorgente java e sorgente sql. Script non ne vedo

Mi sa che stia andando in un infinite loop di mysql...
per script intendo la stringa sql che poi deve essere eseguita!
...quella in rosso nell'errore per esempio io la considero una parte dello script!
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:51   #12
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Riempire tutto solo fino alla 9.900 riga e farsi stampare la memoria?
come faccio a contare il numero di righe della stringa?
...e per stampare la memoria?
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:52   #13
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da doctorAle85 Guarda i messaggi
per script intendo la stringa sql che poi deve essere eseguita!
...quella in rosso nell'errore per esempio io la considero una parte dello script!
Tecnicamente è una parte di sorgente SQL... gli script sono altre cose! L'importante è capirci. Una sola cosa...

tu mi hai riportato l'errore che l'engine mysql ti stampa a video; ma la riga d'errore? li c'è un near ' U alias_2 , U alias_3 , T alias_4 , R alias_5 WHERE alias_0.term2=alias_1.term1' at line 10663 ' ma io non lo vedo nel codice... SQL.

Vado a pranzo, dopo vedo di risponderti e aiutarti
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 13:53   #14
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da doctorAle85 Guarda i messaggi
come faccio a contare il numero di righe della stringa?
...e per stampare la memoria?
No lascia, avevo capito un altra cosa finch'è non hai postato il messaggio di errore che ricevi a runtime: quell'errore a occhio capita proprio in fase di esecuzione della query SQL lanciata sul database.

Non c'entra con il sorgente Java, cioè non sembra essere un errore della JVM.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 14:08   #15
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
Tecnicamente è una parte di sorgente SQL... gli script sono altre cose! L'importante è capirci. Una sola cosa...

tu mi hai riportato l'errore che l'engine mysql ti stampa a video; ma la riga d'errore? li c'è un near ' U alias_2 , U alias_3 , T alias_4 , R alias_5 WHERE alias_0.term2=alias_1.term1' at line 10663 ' ma io non lo vedo nel codice... SQL.

Vado a pranzo, dopo vedo di risponderti e aiutarti
ti pare facile beccare la riga d'errore...
nella console di eclipse inizia a scorrere a manetta e non ce la faccio a bloccare dove sta l'errore! rimedi?

Quote:
Originariamente inviato da banryu79 Guarda i messaggi
No lascia, avevo capito un altra cosa finch'è non hai postato il messaggio di errore che ricevi a runtime: quell'errore a occhio capita proprio in fase di esecuzione della query SQL lanciata sul database.

Non c'entra con il sorgente Java, cioè non sembra essere un errore della JVM.
Allora...c'è qualche notizia!...nn so se positiva o negativa!!!

Praticamente nel metodo che va a creare lo "script" viene utilizzato uno StringBuffer...
Ho smanettato qualcosa e ho impostato questo parametro:
buf.ensureCapacity(1000000000);
Ora nn da più il problema di Memory Exhausted, ma da di nuovo il problema out of memory... eppure in run configurations ho impostato 1500mb!!!
come cacchio è possibile!!!

Altra cosa curiosa...
Se utilizzo un metodo già implementato in questo progetto, che genera ed esegue questo script tutto insieme (senza restituire un resultset ma un'altra cosa) non mi da alcun problema!!!

Se separo le cose, generazione ed esecuzione invece da questi problemi!



2a cosa...
Ho fatto la stampa di una cavolata, ad esempio "true", alla fine della creazione della stringa SQL, per vedere se il problema si verifica durante o dopo la creazione della stringa!
...bene, la stringa sql viene generata senza problemi, perchè mi stampa "true" dopo aver creato lo script...subito dopo però (che corrisponde al momento dell'esecuzione della query sql) da il problema!

Quindi Ally, hai quasi sicuramente ragione!!!
cosa si può fare? impostare qualche parametro in MySql?
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 14:15   #16
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da doctorAle85 Guarda i messaggi
ti pare facile beccare la riga d'errore...
nella console di eclipse inizia a scorrere a manetta e non ce la faccio a bloccare dove sta l'errore! rimedi?



Allora...c'è qualche notizia!...nn so se positiva o negativa!!!

Praticamente nel metodo che va a creare lo "script" viene utilizzato uno StringBuffer...
Ho smanettato qualcosa e ho impostato questo parametro:
buf.ensureCapacity(1000000000);
Ora nn da più il problema di Memory Exhausted, ma da di nuovo il problema out of memory... eppure in run configurations ho impostato 1500mb!!!
come cacchio è possibile!!!

Altra cosa curiosa...
Se utilizzo un metodo già implementato in questo progetto, che genera ed esegue questo script tutto insieme (senza restituire un resultset ma un'altra cosa) non mi da alcun problema!!!

Se separo le cose, generazione ed esecuzione invece da questi problemi!



2a cosa...
Ho fatto la stampa di una cavolata, ad esempio "true", alla fine della creazione della stringa SQL, per vedere se il problema si verifica durante o dopo la creazione della stringa!
...bene, la stringa sql viene generata senza problemi, perchè mi stampa "true" dopo aver creato lo script...subito dopo però (che corrisponde al momento dell'esecuzione della query sql) da il problema!

Quindi Ally, hai quasi sicuramente ragione!!!
cosa si può fare? impostare qualche parametro in MySql?
Come detto da me ed Ally è un problema di esecuzione della Query SQL.
L'unica cosa che mi viene da pensare è 'frammentare' la query sql ed eseguirla a blocchi.
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 14:33   #17
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...ma ricapitolando...crei una query talmente lunga e complessa da occupare 1GB di ram?!...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 14:39   #18
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
scusate, ma ho confuso un pò i vostri nomi nei messaggi che ho scritto...

Ho invocato il metodo length() sulla stringa SQL mi restituisce questo numero:
3072229

E' tanto?
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 14:39   #19
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da ally Guarda i messaggi
...ma ricapitolando...crei una query talmente lunga e complessa da occupare 1GB di ram?!...

...ciao Andrea...
No. Probabilmente l'esecuzione della query va in loop ed occupa tutta la memoria...
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2009, 14:52   #20
doctorAle85
Bannato
 
Iscritto dal: Oct 2007
Messaggi: 452
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
No. Probabilmente l'esecuzione della query va in loop ed occupa tutta la memoria...
Scusa...ma com'è possibile che se utilizzo un metodo che restituisce un resultset che genera lo script e lo valuta al suo interno va bene...
...invece se separo le 2 cose (generazione ed esecuzione) da questi problemi!!!
mistero...
doctorAle85 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
12 MW e oltre 20.000 pannelli: Stellanti...
Sono bastate solo 5 ore per insegnare a ...
Fastweb + Vodafone e TIM: un accordo per...
Scaleway apre una nuova cloud region a M...
Il PC non dà accesso al disco C:/...
Attenzione alle app IPTV: nascondono Per...
Controller Xbox in offerta su Amazon: co...
vivo X300 Pro 5G a 1.199€ su Amazon: il ...
"Portraits of Italians": la ca...
Roborock Qrevo Curv 2 Pro crolla di prez...
Uber ha trovato il partner per i robotax...
Sony pronta a dire addio al marchio PSN:...
ARCTIC Senza AI 370: il PC 'sotto la scr...
Corsair 3200D, il mid-tower sotto i 100€...
Esiste un SSD NVMe M.2 2280 da 16 TB, ma...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:05.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v