Autore Topic: Garbage Collector  (Letto 218 volte)

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Garbage Collector
« il: 05 Ottobre 2014, 00:29:59 CEST »
0
Salve a tutti,
ho scritto in questa sezione, spero di non aver sbagliato, per chiedervi un consiglio.
Secondo voi è utile utilizzare o meglio forzare il garbage collector, dopo l'esecuzione di un service, cioè alla fine.
Per esempi dopo aver ottenuto delle immagini in tempo reale o trasmesso dati per un po' di tempo?

Codice (Java): [Seleziona]
System.gc()
Fatemi Sapere
Grazie a tutti
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Garbage Collector
« Risposta #1 il: 05 Ottobre 2014, 07:16:18 CEST »
0
La posizione ufficiale è che non si debba mai interferire con il GC. Ma non ho mai provato per vedere la differenza.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:Garbage Collector
« Risposta #2 il: 05 Ottobre 2014, 10:45:43 CEST »
0
La sapevo anche io così... però mi hanno anche detto che libera un sacco di memoria inutilizzata, in pratica il comando System.gc forza il garbage collector, poi sta al sistema se accettarlo o no.
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Garbage Collector
« Risposta #3 il: 06 Ottobre 2014, 09:08:24 CEST »
0
MAI chiamare il System.gc()
Mai, mai, mai, mai!
Ho piantato un server di e-commerce una volta a causa di un System.gc() dimenticato in giro "perché così mi libera un sacco di memoria".

Il vero problema con il System.gc() è che difficilmente puoi sapere a priori quale politica di garbage collecting viene fatta dalla virtual machine.
Se sei particolarmente sfortunato può essere adottato l'approccio "stop the world", che letteralmente blocca l'esecuzione della JVM fino a quando non finisce di spazzolarsi tutta la memoria occupata. Altri approcci cercano di essere più intelligenti ma, in linea di massima, conviene sempre lasciare che sia la JVM a decidere se e quando effettuare il collecting della memoria.