- Faire plus de threads signifient toujours de meilleures performances?
- Comment les threads affectent-ils les performances?
- Pourquoi avez-vous besoin d'être prudent lorsque vous avez plus d'un fil?
- Que se passe-t-il quand il y a trop de fils?
Faire plus de threads signifient toujours de meilleures performances?
Pas nécessairement. Atteindre de meilleures performances dans les logiciels multithread est un exercice de goulot d'étranglement. Combien de cœurs disponibles est un goulot d'étranglement potentiel. S'il y a plus de threads capables de fonctionner que les noyaux disponibles pour les exécuter, alors plus de threads n'aideront pas les performances et finiront par devenir des frais généraux.
Comment les threads affectent-ils les performances?
Chaque thread logiciel nécessite une mémoire virtuelle pour sa pile et ses structures de données privées. Comme pour les caches, le découpage du temps fait que les fils se battent pour une mémoire réelle et nuisent donc les performances. Dans des cas extrêmes, il peut y avoir tellement de threads que le programme manque de mémoire virtuelle même.
Pourquoi avez-vous besoin d'être prudent lorsque vous avez plus d'un fil?
En bref, le multi-threading plus susceptible de ralentir un programme que de l'accélérer à moins que certaines pensées ne soient mises en place. Deux CPU peuvent être deux fois plus rapides au mieux, mais peuvent facilement être dix fois plus lents si vous ne faites pas attention.
Que se passe-t-il quand il y a trop de fils?
Deuxièmement, l'exécution d'un nombre excessif de threads entraîne des frais généraux en raison de la façon dont ils rivalisent pour des ressources matérielles limitées. Il est essentiel de distinguer les threads matériels et logiciels. Les programmes créent des threads, qui sont appelés «threads logiciels.«Les threads sur le matériel sont des ressources physiques réelles.