Maison > développement back-end > Golang > Pourquoi la parallélisation n'améliore-t-elle pas les performances dans ce calcul de moyenne mobile ?

Pourquoi la parallélisation n'améliore-t-elle pas les performances dans ce calcul de moyenne mobile ?

Barbara Streisand
Libérer: 2024-12-29 07:37:14
original
475 Les gens l'ont consulté

Why Doesn't Parallelization Improve Performance in This Moving Average Calculation?

Performances de Moving_avg_concurrent2

Moving_avg_concurrent2 n'évolue pas car les frais généraux liés à la création et à la gestion de plusieurs goroutines l'emportent sur les avantages du parallélisme. Les goroutines sont des threads légers, mais ils comportent néanmoins des frais généraux qui leur sont associés, tels que le coût de création et de planification de la goroutine, ainsi que le coût de communication entre les goroutines. Dans ce cas, la surcharge liée à la gestion des goroutines est supérieure à l'avantage de la parallélisation du calcul.

Performances de Moving_avg_concurrent3

Moving_avg_concurrent3 est plus lent que moving_avg_serial4 car il utilise un maître /worker paradigme, qui introduit une surcharge supplémentaire. Dans le paradigme maître/travailleur, le thread maître crée un pool de threads de travail, puis distribue le travail aux travailleurs. Les travailleurs effectuent ensuite le calcul et renvoient les résultats au thread maître. Cela introduit une surcharge supplémentaire car le thread maître doit créer et gérer les threads de travail, et les travailleurs doivent communiquer avec le thread maître pour recevoir le travail et renvoyer les résultats.

Conclusion

Dans ce cas, il n'est pas possible d'obtenir une amélioration significative des performances en parallélisant le calcul. Les frais généraux liés à la gestion des goroutines dépassent les avantages du parallélisme. Il est préférable d'utiliser une implémentation série de l'algorithme, telle que moving_avg_serial4.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal