我正在做一个网络爬虫并使用线程来下载页面。
我的程序性能的第一个限制因素是带宽,我永远无法下载它可以获得的更多页面。
第二件事是我感兴趣的。我使用线程同时下载许多页面,但是当我创建更多线程时,会发生更多的处理器共享。是否有一些测试指标/方式/类别来确定理想的线程数,或者在达到一定数量后,性能不会改变或降低?
我们开发了一个多线程并行网络爬虫。对吞吐量进行基准测试是了解这头野兽如何处理其工作的最佳方式。对于专用的 java 服务器,每个核心一个线程是启动的基础,然后 I/O 开始发挥作用并发生变化。
在一定数量的线程之后,性能确实会下降。但这也取决于您抓取的网站、您使用的操作系统等。尝试找到一个响应时间恒定的网站来进行您的第一个基准测试(例如Google,但采用不同的服务)
对于速度较慢的网站,更多的线程数往往可以补偿 I/O 阻塞
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)