2010-08-13 95 views
3

我正在编写一个小软件组件,以便从Web服务器(IIS)下载资源。我可以打开多个连接到HTTP服务器吗?

但似乎该系统的性能是不可接受的。现在我打算通过产生多个线程来增加连接到Web服务器的数量。

我的问题是,我可以通过使用多线程来提高性能吗?超过剂量的Web服务器允许我产生几个同时连接?

感谢

Upul

+0

问题不明确:当您说“系统的性能不可接受...”时,您是指运行组件或Web服务器的客户端计算机吗? – deostroll 2010-08-13 06:26:41

+0

对不起。我的意思是我的软件的性能(每秒下载的文档数量)。它运行在四核机器上。所以我不认为客户机是瓶颈。 – 2010-08-13 06:29:34

+1

服务器显然必须处理多个连接。这就是它的目的。如果服务器上有一些工作要做,你的性能将会增长。如果服务器仅托管静态内容或简单脚本,那么您的bottelneck就是服务器机器或连接。 (好的,或者你的软件中的一个愚蠢的错误:P) – naugtur 2010-08-13 06:43:28

回答

3

所有正确配置的Web服务器应该能够处理来自同一个源的多个连接。例如,这允许浏览器一次从页面下载两个图像。

某些服务器可能会对它从一个客户端接受的并发连接数量设置上限,但这通常会是一个很高的数字。使用多达6个连接通常是安全的。

至于它是否会真正提高性能,这取决于你的情况。如果连接到互联网骨干网的速度非常快,并且发现从远程服务器获得的速度没有利用连接的速度,那么在很多情况下,多线程可以提高速度。如果速度已经超过了连接到互联网的速度或远程服务器的连接速度,那么它无法做任何事情。

2

Web服务器是不能够同时连接。除非应用程序逻辑禁止为同一个客户端打开多个连接,否则打开一个应该没有问题。为了进一步澄清我的观点,如果您在下载资源之前需要登录,并且您的应用程序不允许多个同时登录,那么您将陷入困境。出于安全原因,有些应用程序不允许来自同一个源的大量连接。

相关问题