Quels sont les frais généraux liés à l'utilisation d'une classe de référence?
-
05-07-2019 - |
Question
J'ai vu qu'un thread de démon était en cours d'exécution chaque fois que nous créons un objet référencé à l'aide d'une classe de référence telle que
WeakReference,
FinalReference,
SoftReference,
PhantomReference,
Referemce
Et si nous avons une structure hiérarchique de threads, un démon supplémentaire est lancé à chaque niveau.
La solution
Je m'attendrais à ce que les frais généraux soient très minimes pour la plupart des applications. À moins que vous sachiez que c'est un problème, je ne m'en inquiéterais pas. Je n'ai jamais vu de références apparaître comme un problème dans un profileur et j'utilise différents profileurs depuis 10 ans.
Autres conseils
La seule façon pour moi de voir que cela devient un problème est si votre nombre de threads passe bien à 2 chiffres et plus.
En gros:
- 10 discussions seront à côté de imperceptibles
- 100 devrait être OK, car ils attendent la plupart du temps et crachent un peu de mémoire chacun
- 1000 causera des maux de tête à votre système car ces ressources seront manquantes ailleurs
- 10000 mettra votre système à genoux, sinon le tuer complètement.