如何快速发送大量的POST请求

时间:2012-02-29 05:10:45

标签: c++ multithreading perl delphi post

我计划为我们的大学研究开发一个程序,该程序必须向不同的网址发送大量的帖子请求。它必须尽可能快地工作(我们应该处理大约100kk的URL)。我使用什么语言(目前我用c ++,delphi和perl编写)?

另外,我听说可以使用prefork在perl中编写一个多线程应用程序,每分钟处理大约20-30k。这是真的吗?

//抱歉我的英语不好,但它似乎是唯一能让我得到正确答案的地方

安德鲁

3 个答案:

答案 0 :(得分:15)

每分钟20-30k完全是任意的。如果你在具有强大网络连接的8核机器上运行它,你可能会超越它。

但是,我认为您选择的编程语言/库并不重要。相反,您将遇到机器允许的并发TCP连接数,以及链路本身的带宽。

答案 1 :(得分:5)

Webserver Stress Tool声称能够模拟最多10,000个并发用户生成的HTTP请求,并且在Torry's site中有一个条目:可能是用Delphi或C ++ Builder编写的。< / p>

我的建议:

你可以用Delphi编写自定义压力工具(HTTP(S)客户端)(它恰好是我最喜欢的语言,所以我提倡它),使用轻型HTTP(S)库,如{{ 3}}和RTC SDK用于多线程。

请参阅此OmniThreadLibrary以获取线索/提示。


修改

摘自RealThinClient_SDK331.zip中的Demos \ Readme_Demos.txt

  

App Client,Server和ISAPI演示可用于对RTC进行压力测试   通过打开使用具有强加密的远程功能的组件   来自每个客户端的数百个连接并充斥着   带请求的服务器/ ISAPI。

     

App Client Demo非常适合使用压力测试RTC远程功能   多线程模式下的多个连接,可视化显示活动   和实时图表中每个连接的阶段。客户可以选择   在“代理”和标准连接组件之间,看到了   带宽使用和分配的差异。

答案 2 :(得分:1)

我听说Erlang对于这样的应用程序非常好,因为在Erlang中快速生成许多进程非常有效。但我认为使用Python也可以,只需使用popen模块来生成多个进程。 毕竟,根据机器的处理器数量,您可以同时运行多少。语言的选择可能无关紧要,这取决于您从这些URL下载的数据所做的事情,因为这可能比产生的成本更加处理密集。