|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
|
|
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
![]() ![]() ![]()
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
|
![]() |
![]() |
![]() |
#23 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Io quando si parla di Microsoft mi vergognerei pure a dire che sono dottore... ![]() |
|
![]() |
![]() |
![]() |
#24 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
![]()
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
|
![]() |
![]() |
![]() |
#25 |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
@mjordan:
Già. l'università non è che il punto di inizio, l'ho capito subito quando ho cominciato la professione. Nell'informatica, come in tutto del resto, non si finisce mai di imparare (per dirlo con una frase fatta) ![]()
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
![]() |
![]() |
![]() |
#26 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Per quanto riguarda la questione del garbage collector, dei memory leak e per chi pensa che servano per eliminare i memory leaks:
Quote:
http://compilers.iecc.com/comparch/article/97-04-040 Conclusione: I Garbage Collector non sono strumenti che evitano i memory leak. Al di la di quello che dice Microsoft che ti deve convincere a usarlo. |
|
![]() |
![]() |
![]() |
#27 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
Per quanto riguarda i memory leaks, anche per rendere un GC più efficiente, normalmente si specifica il cosidetto level of reachability della memoria allocata, così da non rischiare che il GC lasci quella memoria (magari indirizzata indirettamente) allocata inutilmente.
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
|
![]() |
![]() |
![]() |
#28 |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Posto un semplicissimo esempio di memory leak in C, è un classico nella letteratura informatica.
Codice:
int main(void) { char *stringa1, *stringa2; stringa1 = (char*)malloc(40*sizeof(char)); stringa2 = (char*)malloc(40*sizeof(char)); strncpy(stringa2, "Sto per causare un memory leak!", 31); stringa1 = stringa2; /* Ecco il memory leak! La memoria allocata */ /* per stringa uno va perduta, dal momento */ /* che non è più puntata da nessuno. Per */ /* questo motivo non può essere liberata */ /* esplicitamente. */ free(stringa2); /* Tutto ok */ free(stringa1); /* Ecco l'errore... Si sta cercando di liberare */ /* memoria già deallocata. */ return 0; }
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson Ultima modifica di -fidel- : 04-02-2006 alle 16:42. |
![]() |
![]() |
![]() |
#29 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
a parte tutto questo discorso.. il GC in se è uno spreco di memoria in quanto è costretto a controllare ogni tanto lo stato della memoria, anche quando ragionevolmente non ce n'è bisogno! per questo è possibile avere un certo controllo sul GC via codice (anche se non completo). comunque sta di fatto che la gestione della memoria via GC non è affatto ottimale nè mira ad esserlo, ma mira soltanto a semplificare la vita al programmatore. |
|
![]() |
![]() |
![]() |
#30 | |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 2717
|
Quote:
![]() Ad esempio in Java mi pare che proprio una situazione come quella sia il "pane quotidiano" del gc: ovvero se una struttura non è più puntata da nessun riferimento, la relativa memoria verrà liberata dal gc, di default nel momento che la jvm riterrà "più opportuno". Con .net non so (ne ho solo "un'infarinatura"), ma non penso sia irragionevole suppore un comportamento analogo. (Se avessi "preso un granchio" e detto starfalcioni perdonatemi... )
__________________
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." - Albert Einstein fonte: http://it.wikiquote.org/wiki/Albert_Einstein Ultima modifica di MenageZero : 04-02-2006 alle 17:00. |
|
![]() |
![]() |
![]() |
#31 | ||
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
![]() Quote:
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
||
![]() |
![]() |
![]() |
#32 |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
E' per questo che sono restio ad usare i GC, mi incasino nel capire se quella memoria verrà liberata e quindi quando mi devo preoccupare e quando no! Mi sa che me li devo studiare in modo più approfondito, al momento non ho tutti gli argomenti per valutare
![]()
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
![]() |
![]() |
![]() |
#33 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#34 | |
Messaggi: n/a
|
Quote:
![]() 2) Il tuo discorso regge poco per il motivo già detto da k0nt3 (e che tu hai abilmente tentato di scansare), ovvero secondo il tuo ragionamento (e della tua sedicente "teoria dei linguaggi formali") Java sarebbe un linguaggio di "medio livello" cosa notoriamente falsa. La definizione di Java come linguaggio d'alto livello è decisamente più consona al mio criterio di catalogazione ![]() |
|
![]() |
![]() |
#35 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
![]()
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
|
![]() |
![]() |
![]() |
#36 | |||
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Quote:
http://www.chicercatrova2000.it/java/introd.asp Quote:
|
|||
![]() |
![]() |
![]() |
#37 | |||||
Messaggi: n/a
|
Quote:
![]() Quote:
Quote:
![]() Quote:
Se poi per te valgono solo gli insulti, allora io non mi sono mai permesso di darti del cretino" o del "cog***ne". Quote:
![]() |
|||||
![]() |
![]() |
#38 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
![]()
__________________
- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale. - A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson |
|
![]() |
![]() |
![]() |
#39 | |
Messaggi: n/a
|
Quote:
![]() |
|
![]() |
![]() |
#40 | |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 2717
|
Quote:
http://en.wikipedia.org/wiki/Smart_pointer 1) tutti i riferimenti(puntatori) sono in pratica smart pointer 2) handle: la rappresentazione della risorsa come oggetto è sempre deallocata (prima o poi) dal gc quando non ci sono più riferimenti a tale oggetto; per quanto riguarda il "liberare" le risorse fornite e gestite da "un'altro sistema", (ad es. l'os), esempio: fai I/o su un file, prima di deferenziare il l'oggetto che rapprsenta il flusso di I/O devi chiamare un apposito metodo close() di questo per garantire che l'os liberi quel file mentre è ancora in esecuzione la jvm con la tua app.
__________________
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." - Albert Einstein fonte: http://it.wikiquote.org/wiki/Albert_Einstein |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:56.