社区
C#
帖子详情
【新手求助】高分求个超快的多线程算法,高手来看看
wooolsf
2012-05-01 11:10:48
我现在有5亿多个网址
我想用xmlhttp.open的方式快速的把他们访问一遍
我做这个程序的功能大致是:每访问一个网址会返回此网页的源码,根据此网页的源码来判断此网址是否可用。
关键点:求超快的多线程算法!一天最多能访问多少个网址?
我上网用的是光纤(下载文件一般是5M以上每秒),速度上应该够用。
先谢谢各位高手了!
...全文
170
13
打赏
收藏
【新手求助】高分求个超快的多线程算法,高手来看看
我现在有5亿多个网址 我想用xmlhttp.open的方式快速的把他们访问一遍 我做这个程序的功能大致是:每访问一个网址会返回此网页的源码,根据此网页的源码来判断此网址是否可用。 关键点:求超快的多线程算法!一天最多能访问多少个网址? 我上网用的是光纤(下载文件一般是5M以上每秒),速度上应该够用。 先谢谢各位高手了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bdmh
2012-05-01
打赏
举报
回复
不是说了吗,单cpu和多核的区别吗,你这个如果仅仅获得网页内容,根本谈不上什么算法,你用c#的自己的线程池即可
wooolsf
2012-05-01
打赏
举报
回复
大哥,能不能给出具体的算法代码?
我还有个疑问:就是利用多线程,
是直接开就可以加快速度?
还是需要有特定的算法?
谢谢!
bdmh
2012-05-01
打赏
举报
回复
理论上对于单核cpu,单线程会快于多线程,多线程在cpu数量多于线程数量时,效果最优
根据你的总数量,大概估算一下开多少个线程,每个线程负责一部分网址,c#有线程池,你可以用
足球中国
2012-05-01
打赏
举报
回复
如果理想状态下。假设这5亿个都存在而且状态良好。1秒钟 100个。应该没有啥压力。
足球中国
2012-05-01
打赏
举报
回复
楼主有件事没搞清楚。你的网速的快慢和访问别人的网站关系并不大。下行速度一般都比上行要快很多的。
上行速度一般都是比下载慢好几倍的。而且你的这个5E还不一定每个都能建立连接。能建立的速度还很快。如果不能建立连接的。那个速度是很慢的。
还有5E网站,如果有国外的。很多都会被墙掉的。
dianond
2012-05-01
打赏
举报
回复
并行计算
http://msdn.microsoft.com/zh-cn/library/dd783747.aspx
自己写个处理方法,参数就是一个网址
EnForGrass
2012-05-01
打赏
举报
回复
5亿个网址,你的宽带是5M,就算不考虑网络延迟等因素,你自己算算吧
苏二
2012-05-01
打赏
举报
回复
我曾经做过一个刷票的程序,帮一个同学刷票.
需要刷 点击数和投票数. 投票数用流量精灵刷的,有IP和时间限制.
点击数就是用100K的网刷的,开30个线程,妥妥的,几分钟就刷到3W了...吓的都不敢开了
苏二
2012-05-01
打赏
举报
回复
5E的网址,看样子肯定不是同一个站点的.你是5M的光纤.
平均一个下载用20-50K/S(最多100K)的样子,5000/50 = 100.
我觉得100个线程是一个比较合理的数据,而且CPU毫无压力
烈火蜓蜻
2012-05-01
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
理论上对于单核cpu,单线程会快于多线程,多线程在cpu数量多于线程数量时,效果最优
根据你的总数量,大概估算一下开多少个线程,每个线程负责一部分网址,c#有线程池,你可以用
[/Quote]
主要速度的瓶颈不会在CPU上,因为单核开多线程,肯定还是会快的,毕竟有时候,就算你的网速非常看,还是要看对方的网络,因此开多线程,是必要的,不过呢,你自己可以做个测试,看看开多少个线程比较合似,没什么高不高效。
evelyn_green
2012-05-01
打赏
举报
回复
估计楼上大虾说的对
软件再快都快不过硬件
threenewbee
2012-05-01
打赏
举报
回复
这程序不是你的知识层次能搞的。该花点钱就花点钱。
ohkuy
2012-05-01
打赏
举报
回复
你可以去看下爬虫程序
新手
学 Python常逛的学习网站
本文为Python初学者推荐了多种高效的问题解决途径。权威资源包括官方文档和GitHub开源项目;问答平台推荐Stack Overflow、CSDN和Python中文社区;社交平台可选择Reddit、知乎和腾讯频道Python学习基地(31万+成员,响应快、氛围友好);此外还有LeetCode
算法
练习和经典书籍参考。建议
新手
善用这些渠道,特别是腾讯社群作为主要
求助
阵地,结合实践快速提升编程能力。
编程
新手
导论(转载)
第二部分 导论,这一部分主要是关于编程的导论, (要懂得一点思想具备一点常识)《设计,编码,,与软工》(编程与思想)这一章解释了三种思想,原语,抽象,组合,,和软件开发的二个重要过程,,软件工程的相关概念,是编程入门的关键 (要懂得一点领域内的数学)《数学与
算法
》(编程与数学)计算机整个就是架构在数学上的,跟计算机平台实现,
算法
设计,,架构密切相关,,真正要深入编程,,,对数学的学习是必须的,
【信息科学与工程学】【管理科学】第二十二篇 员工管理和控制
算法
01
编号定理/规律数学特征
算法
/策略名称与数学方程式(步骤)关键参数/变量精度/误差/边界条件/影响因素跨学科方法与控制方法实现目标完整实现步骤典型应用场景优点与局限瓶颈关联知识连接点001匈牙利
算法
(指派问题最优性定理)集合、组合、优化、图论、矩阵。将员工集合E和任务集合T映射为二分图G=(E, T, W),权重矩阵W。是组合优化中的多项式时间精确
算法
。
算法
:匈牙利
算法
步骤: 1. 归约:对每行(每个员工)减去该行最小值,对每列(每个任务)减去该列最小值,使每行每列至少有一个0。 2.
Kazumi番剧播放器:从
新手
到
高手
,一站式解决你的追番烦恼
Kazumi是一款基于自定义规则的开源番剧播放器,让你能够聚合多个视频源、享受弹幕互动体验,并支持实时超分辨率画质增强。无论你是动漫爱好者还是追
求个
性化观看体验的用户,这款跨平台应用都能为你提供一站式番剧观看解决方案。本指南将带你快速掌握Kazumi的核心功能和使用技巧,让你在几分钟内就能畅享海量番剧资源。通过自定义规则和智能推荐系统,Kazumi实现了番剧资源的高度可定制化,解决了传统播放器内容
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章