Usi per System.gc () in Java [chiuso]

3

In Java, esiste un metodo chiamato System.gc() , che chiama il garbage collector (o piuttosto "suggerisce" alla JVM per eseguire il GC).

Ci sono validi motivi per chiamare questo metodo? Sto pensando che sarebbe evidente del cattivo design del software.

    
posta Ryan 01.08.2014 - 21:51
fonte

3 risposte

8

Che ne dici di una suite di benchmarking? Piuttosto che lasciare che il GC funzioni in qualsiasi momento casuale, potresti voler farlo correre tra serie di test, per (eventualmente) creare condizioni più coerenti per ogni set.

    
risposta data 01.08.2014 - 21:55
fonte
6

Che dire di un gioco in cui si desidera controllare le pause gc. Potresti quindi chiamare gc immediatamente prima dell'avvio di un livello dopo il caricamento delle risorse.

    
risposta data 01.08.2014 - 22:23
fonte
0

In generale, non esiste una buona ragione per chiamare System.gc (). Soprattutto perché il sistema potrebbe ignorarlo. Ma qui ci sono alcuni motivi plausibili.

  1. Come già detto, in un benchmark
  2. Hai appena liberato un sacco di oggetti di grandi dimensioni e altrimenti "le cose sono tranquille", le code sono vuote, ecc ... Ora è un buon momento per portare a termine i lavori di manutenzione.
  3. Stai per allocare una tonnellata di oggetti di grandi dimensioni e altrimenti "le cose sono tranquille".
  4. Stai per inserire un codice sensibile alla velocità in cui si desidera una bassa latenza. Prendi la raccolta dei rifiuti "fuori mano" ora, prima della lotta contro i super-veloci 28 giorni dopo gli zombi in risoluzione 3D e 4K. : -)
risposta data 02.08.2014 - 03:09
fonte

Leggi altre domande sui tag