gpt4 book ai didi

c++ - 设计最快的页面下载

转载 作者:行者123 更新时间:2023-11-28 08:29:08 25 4
gpt4 key购买 nike

我有一个包含数百万个 URL/IP 的文件,必须编写一个程序来非常快速地下载这些页面。连接速率应至少为 6000/s,文件下载速度应至少为 2000,平均。 15kb 文件大小。网络带宽为 1 Gbps。

到目前为止,我的方法是:创建 600 个套接字线程,每个线程有 60 个套接字,并使用 WSAEventSelect 等待数据读取。文件下载完成后,立即将该内存地址(下载文件的)添加到管道(一个简单的 vector )并触发另一个请求。当所有socket线程的总下载量超过50Mb时,将所有下载的文件写入磁盘,释放内存。到目前为止,这种方法并不是很成功,我无法达到超过 2900 连接/秒的速度,下载数据速率甚至更低。

有人可以建议一种可以给我更好统计数据的替代方法吗?我也正在使用 8 Gig 内存的 Windows Server 2008 机器。此外,我们是否需要破解内核以便我们可以使用更多线程和内存。目前我可以创建一个最大值。 1500 个线程和内存使用不超过 2 gigs [从技术上讲应该更多,因为这是一台 64 位机器]。IOCP 是毫无疑问的,因为到目前为止我没有这方面的经验并且今天必须修复此应用程序。

谢谢大家!

最佳答案

首先,您需要弄清楚是什么限制了您的应用程序。您是否受 CPU 限制、IO 限制、内存限制、网络限制……?您的线程之间是否存在锁定争用?等等……

根据你的描述是不可能的。您将需要在分析器中运行您的应用,以了解瓶颈所在。

关于c++ - 设计最快的页面下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com