J'ai lu que le nombre idéal pour passer au paramètre NumberOfConcurrentThreads
de la fonction CreateIoCompletionPort()
est 0
, qui se traduira par le nombre de cœurs.Combien de threads devrais-je créer pour IOCP?
Cependant, le nombre de threads je fait créer qui attend sur le port d'achèvement, devrait-il être aussi le même que le nombre de cœurs?
Si vous faites beaucoup d'autres * attend * (sur des choses autres que le port d'achèvement) d'une durée non négligeable, alors il est logique d'avoir des fils supplémentaires de manière à pouvoir être pleinement utilisé la CPU. Si vous n'attendez jamais autre chose que le port d'achèvement, AFAIK, il n'y a aucune raison d'en avoir plus d'un par core. Je pense que vous devez expérimenter pour trouver le meilleur équilibre pour votre application particulière. (Bien sûr, pour de nombreuses applications dans le monde réel, un ou deux fils peuvent gérer facilement tout le trafic. Cela dépend de la quantité de charge.) –