Maison >développement back-end >C++ >Comment puis-je augmenter le nombre de requêtes HTTP simultanées dans mon application Windows ?

Comment puis-je augmenter le nombre de requêtes HTTP simultanées dans mon application Windows ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-05 21:29:40662parcourir

How Can I Increase the Number of Concurrent HTTP Requests in My Windows Application?

Limitation des requêtes HTTP parallèles : exploration de la configuration du registre Windows

Dans le but d'optimiser une application qui exécute de nombreuses requêtes HTTP asynchrones à l'aide d'un ThreadPool, le développeur a d'abord rencontré des contraintes de performances. Le dépannage initial visait à résoudre les limitations potentielles côté serveur, mais cette voie a été éliminée.

La recherche a suggéré des restrictions potentielles imposées par Windows sur le nombre de requêtes simultanées sur le même serveur Web. L'amélioration des valeurs de registre « MaxConnectionsPerServer » et « MaxConnectionsPer1_0Server » dans [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings] a été recommandée pour modifier ce comportement. Toutefois, les améliorations escomptées ne se sont pas concrétisées. Des soupçons sont apparus selon lesquels les valeurs de registre référencées pourraient être incorrectes ou que la modification n'était plus efficace dans l'environnement Windows actuel.

Fait intéressant, la modification du paramètre MaxThreads dans ThreadPool n'a pas eu d'impact sur les performances de l'application, l'excluant ainsi en tant que goulot d’étranglement potentiel. Les observations correspondantes de Resource Monitor ont en outre confirmé des connexions TCP limitées.

Correction de l'approche

Après un examen plus approfondi, il est devenu évident que le problème provenait de limitations introduites par la classe ServicePoint, qui gère les connexions pour les opérations HTTP. Chaque objet ServicePoint impose par défaut un maximum de deux connexions simultanées. Pour atténuer cette contrainte, le développeur a modifié la propriété « ServicePointManager.DefaultConnectionLimit » pour prendre en charge un plus grand nombre de requêtes simultanées. Cet ajustement a finalement résolu le problème, permettant à l'application d'exécuter plusieurs requêtes HTTP simultanément.

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!

Déclaration:
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