2010-08-13 9 views
3

J'écris un petit composant logiciel afin de télécharger des ressources à partir d'un serveur Web (IIS).Puis-je ouvrir plusieurs connexions à un serveur HTTP?

Mais il semble que les performances de ce système ne soient pas acceptables. Maintenant, je prévois d'augmenter le nombre de connexions au serveur web en engendrant plusieurs threads.

Ma question est, puis-je améliorer les performances en utilisant plusieurs threads? Plus de dose web server me permet de générer plusieurs connexions simultanées?

Merci

Upul

+0

question n'est pas claire: quand vous dites "que la performance de ce système n'est pas acceptable ..." voulez-vous dire la machine cliente qui exécute votre composant ou le serveur web? – deostroll

+0

Je suis désolé. Je voulais dire la performance de mon logiciel (nombre de documents téléchargés par seconde). Il fonctionne sur une machine Quad Core. Donc, je ne pense pas que la machine cliente soit un goulot d'étranglement. –

+1

Serveur doit évidemment gérer plusieurs connexions. C'est pour ça. Votre performance augmentera s'il y a du travail à faire sur le serveur. Si le serveur héberge uniquement du contenu statique ou des scripts simples, alors votre bottelneck est soit la machine du serveur, soit la connexion. (ok, ou une erreur stupide dans votre logiciel: P) – naugtur

Répondre

3

Tous les serveurs Web correctement configurés doivent être capables de gérer plusieurs connexions provenant de la même source. Cela permet, par exemple, à un navigateur de télécharger deux images d'une page à la fois.

Certains serveurs peuvent imposer une limite supérieure au nombre de connexions simultanées acceptées par un client, mais il s'agit généralement d'un nombre élevé. L'utilisation de jusqu'à 6 connexions est normalement sûre. En ce qui concerne l'amélioration réelle des performances, cela dépend de votre situation. Si vous avez une connexion très rapide à un backbone Internet, et constatez que la vitesse que vous obtenez du serveur distant ne profite pas de la vitesse de votre connexion, alors dans de nombreuses situations, le multithreading peut améliorer la vitesse. Si la vitesse dépasse déjà la vitesse de votre connexion à Internet, ou la connexion du serveur distant, alors il ne peut rien faire.

2

serveurs Web sont ne permettent de connexions simultanées. Il ne devrait pas y avoir de problème en ouvrant celui à moins que la logique de l'application empêche l'ouverture de plusieurs connexions pour le même client. Pour clarifier davantage mon point, si vous avez besoin de vous connecter avant de télécharger des ressources et que votre application n'autorise pas plusieurs connexions simultanées, alors vous resterez coincé. Il existe des applications qui ne permettent pas beaucoup de connexions de la même source pour des raisons de sécurité.

Questions connexes