2009-11-27 6 views
1

j'ai vu il y a un démon fil conducteur à chaque fois que nous créons un objet référencé en utilisant une classe de référence commeQuels sont les frais généraux quand j'utilise une classe Reference?

WeakReference, 
FinalReference, 
SoftReference, 
PhantomReference, 
Referemce 

Et si nous avons la structure de fil hiérarchisé alors il à chaque niveau est un thread démon supplémentaire lancé.

+0

Si je pouvais réécrire votre question, je l'aurais formulé "Quels frais généraux se produisent quand j'utilise un cours de référence?" –

+0

Changé la question – DKSRathore

Répondre

2

Je m'attendrais à ce que le surdébit soit très faible pour la plupart des applications. Sauf si vous savez que c'est un problème, je ne m'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.

+0

Ok. Ensuite, je vais certainement essayer d'optimiser la chose cache de mes applications à Wekreferences. – DKSRathore

+0

Les Softreferences peuvent apparaître. Ils sont récupérés relativement tard et si vous en avez beaucoup, vous pouvez rencontrer de sérieux problèmes de performance car ils nécessitent plus d'une course GC à récupérer. – kohlerm

+0

WeakReferences peut être rejeté très facilement et ne peut durer que quelques secondes ou moins. SoftReference est mieux pour cela, mais ne stockez pas la plus grande partie de votre mémoire comme indiqué par @kohlerm. Si la partie de la mémoire pour ces références est relativement petite, le temps système est également réduit. –

1

La seule façon dont je vois cela devenir un problème est si votre nombre de threads se développe bien en 2 chiffres et plus.

très schématiquement:

  • 10 fils de discussion seront à côté de imperceptibles
  • 100 devrait être OK, car ils sont la plupart du temps d'attente et à mâcher juste un peu de mémoire chaque
  • 1000 donnera votre système a mal à la tête parce que ces ressources seront manquantes ailleurs
  • 10000 mettra votre système à genoux, sinon carrément le tuer.
+0

Nice Info. Merci carl. – DKSRathore

Questions connexes