|
|
|
![]() |
|
Strumenti |
![]() |
#281 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
|
|
![]() |
![]() |
![]() |
#282 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
![]() La "sicurezza" che hai proviene da due elementi di giudizio: 1) Sicurezza che in fondo non lo è. 2) Sicurezza certa dovuta a estrema semplicità del codice trattato. Io credo che la tua sia un mix di entrambi i punti. 2000 righe di codice C/C++ inolte non sono proprio la stessa cosa che 2000 righe di codice PHP, vista "l'indulgenza sintattica" per cui questo linguaggio è famoso. Lo stesso dicasi per SQL. |
|
![]() |
![]() |
![]() |
#283 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
mjordan: dai...non alimentiamo la polemica...ormai il discorso si era spostato su altri lidi
![]() |
![]() |
![]() |
![]() |
#284 | |
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 |
|
![]() |
![]() |
![]() |
#285 | |||||
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
![]() Quote:
Quote:
Quote:
Quote:
|
|||||
![]() |
![]() |
![]() |
#286 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
|
Quote:
infatti quella variabile era di tipo void... in realtà avrebbe potuto semplicemente accedervi dal metodo ora ke ci penso senza passargli l'array poichè lo vedeva come variabile di classe se ricordo bene il codice...
__________________
![]() |
|
![]() |
![]() |
![]() |
#287 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
int x[] = new int [20]; ... x = new int [40]; Ovviamente perdi il contenuto di x perchè x viene distrutto e riallocato.
__________________
- 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 |
|
![]() |
![]() |
![]() |
#288 | |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 2717
|
Quote:
quindi non ho capito come nascerebbe un vero mem leaky, cioè cosa renderà inattaccabili dal gc le vecchie istanze di byteArray non più referenziate ?
__________________
"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 |
|
![]() |
![]() |
![]() |
#289 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
At the very least, this puts pressure on the garbage collector and requires more frequent collections; |
|
![]() |
![]() |
![]() |
#290 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Il metodo finalize() infatti non fa entrare in azione il Garbage Collector come si pensa. Una cosa importante da sapere è che finalize() viene chiamato solo PRIMA di essere eseguito il garbage collector e non quando un'oggetto esce dall'ambito. Quindi non c'è un modo esatto per sapere quando finalize() venga chiamato. E' una precisazione importante. finalize() non dev'essere considerato come un distruttore di classe, insomma. Se non ti riferivi a finalize(), chiedo venia allora.... ![]() |
|
![]() |
![]() |
![]() |
#291 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
1) istanzio 'byteArray' da 10 mega e la uso 2) ho bisogno di un buffer più grosso: reistanzio byteArray da 20 Mb. i 10 mega di prima vengono subito rimossi, e ne vengono riallocati 20. 3) il GC rimuoverà i 20 mega solo quando vado a cancellare la classe! Non è un memory leak classico, viene chiamato memory leak di tipo "object loitering", quel buffer viene tranquillamente eliminato quando rimuovo l'intera classe, ma nel frattempo sta lì a rubare inutilmente memoria.
__________________
- 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 |
|
![]() |
![]() |
![]() |
#292 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Secondo me non è definibile memory leak... E' come se io in C mi tenessi in una variabile globale un puntatore ad un vettore ottenuto con realloc...e poi quando non mi serve più non chiamo volutamente la free... A me sembra più un design non corretto... Ultima modifica di cionci : 06-02-2006 alle 16:41. |
|
![]() |
![]() |
![]() |
#293 | |
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 |
|
![]() |
![]() |
![]() |
#294 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Se si cerca di ottimizzare allora bisogna ottimizzare anche LeakyCheckSum...in modo da rendere il suo ciclo di vita il più corto possibile... Alla base c'è comunque un errato design e non un errore di coding...come per la maggior parte dei memory leak... Ultima modifica di cionci : 06-02-2006 alle 16:39. |
|
![]() |
![]() |
![]() |
#295 | |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 2717
|
Quote:
ripeto: "...riallocato" anche se quando viene distrutto (dal gc) non lo sai a priori, la mem non più usata dal nuovo array, può essere "preda" del gc! e il leak ?(ovviamente riferito al famoso esempio dove il punto è lo stesso)
__________________
"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 |
|
![]() |
![]() |
![]() |
#296 | ||
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 |
||
![]() |
![]() |
![]() |
#297 | |
Senior Member
Iscritto dal: Jan 2006
Messaggi: 2722
|
Quote:
![]() Non è un leak "nel senso stretto" del termine, perchè comunque quella memoria prima o poi sarà raggiungibile dal GC (in particolare quando distruggo la classe), ma fino a quando quell'oggetto è istanziato, quel buffer rimane lì rubando inutilmente memoria (anche molta memoria...). E' un particolare tipo di memory leak, non meno pericoloso del leak "per definizione", chiamato "memory leak di tipo object loitering".
__________________
- 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 |
|
![]() |
![]() |
![]() |
#298 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#299 | |
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 |
|
![]() |
![]() |
![]() |
#300 | |
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 |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:12.