2010-12-13 27 views
1

Quel est le coût d'un fil natif OS? Le système d'exploitation hôte alloue de la mémoire virtuelle pour une pile de threads et un peu de la mémoire du noyau pour les structures de contrôle de thread. Est-ce que je manque quelque chose?Combien coûtent les fils?

+4

Il n'y a pas de réponse - il varie assez largement entre les systèmes d'exploitation. –

Répondre

4

Il peut augmenter la charge de travail de planificateur, selon la façon dont occupé le fil est, et le genre de planificateur. Il va également allouer de la mémoire physique pour la première page de la pile.

Le principal coût dans de nombreux cas est la pollution de cache. Avoir trop de tâches simultanées actives tue les performances, car trop de threads partagent trop peu cache, et ils continuent juste à pousser les uns les autres en arrière sur la mémoire principale, qui est une indignité bien pire pour un fil de souffrir que d'être simplement mis en sommeil, car le sommeil encourt une seule peine de plusieurs centaines de cycles, lors de la récupération mémoire principale engage un semblable en tête à plusieurs reprises au cours d'une seule tranche de temps, et signifie également proportionnellement plus de contexte de commutation depuis beaucoup moins de travail se fait pendant cette tranche de temps.