109 votes

Nombre maximal de goroutines

Combien de goroutines puis-je utiliser sans douleur? Par exemple, Wikipédia dit qu'en Erlang, 20 millions de processus peuvent être créés sans dégradation des performances.

Mise à jour: Je viens de faire des recherches sur les performances des goroutines un peu et j'ai obtenu ces résultats :

  • Il semble que la durée de vie d'une goroutine est plus longue que le calcul de sqrt() 1000 fois (~45µs pour moi), la seule limitation est la mémoire
  • Une goroutine coûte 4 à 4,5 Ko

0voto

VonC Points 414372

Si le nombre de goroutines devient un problème, vous pouvez facilement le limiter pour votre programme :
Voir mr51m0n/gorc et cet exemple.

Définir des seuils sur le nombre de goroutines en cours d'exécution

Peut augmenter et diminuer un compteur lors du démarrage ou de l'arrêt d'une goroutine.
Il peut attendre un nombre minimum ou maximum de goroutines en cours d'exécution, permettant ainsi de définir des seuils pour le nombre de goroutines gouvernées par gorc en cours d'exécution simultanément.

-2voto

Lorsque l'opération était limitée par le processeur, tout ce qui dépassait le nombre de cœurs s'est avéré inutile.

Dans tout autre cas, vous devrez le tester vous-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X