Cosa e quante spese generali si verificano quando utilizzo una classe di riferimento?
-
05-07-2019 - |
Domanda
Ho visto che c'è un thread demone in esecuzione ogni volta che creiamo un oggetto referenziato usando qualsiasi classe di riferimento come
WeakReference,
FinalReference,
SoftReference,
PhantomReference,
Referemce
E se abbiamo una struttura di thread gerarchica, ad ogni livello c'è un thread daemon extra avviato.
Soluzione
Mi aspetto che l'overhead sia molto piccolo per la maggior parte delle applicazioni. Se non sai che è un problema, non me ne preoccuperei. Non ho mai visto i riferimenti apparire come un problema in un profiler e utilizzo profili diversi da 10 anni.
Altri suggerimenti
L'unico modo in cui vedo questo diventare un problema è se il tuo numero di thread cresce bene in 2 cifre e più.
Molto approssimativamente parlando:
- 10 thread saranno accanto a impercettibili
- 100 dovrebbe essere OK, dato che sono quasi tutti in attesa e masticano un po 'di memoria ciascuno
- 1000 causerà mal di testa al tuo sistema perché quelle risorse mancheranno altrove
- 10000 metterà in ginocchio il tuo sistema, se non addirittura lo ucciderai.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow