【发布时间】:2016-09-23 14:34:41
【问题描述】:
我正在编写一个爬虫模块,它递归地调用它来下载越来越多的链接,具体取决于传递的depth 选项参数。
除此之外,我正在对已下载的返回资源执行更多任务(根据传递给爬虫的配置来丰富/更改它)。
此过程会递归进行,直到完成,这可能需要很长时间(或不需要),具体取决于所使用的配置。
我希望尽可能快地优化它,并且不妨碍任何将使用它的 Node.js 应用程序。
我已经设置了一个快速服务器,它的一个路由启动爬虫用户定义的(查询字符串)主机。
在为不同的主机启动了几个爬取会话后,我注意到有时我会从只返回简单文本的其他路由获得真正缓慢的响应。
延迟可能从几毫秒到 30 毫秒不等秒,它似乎是在随机时间发生的(好吧,没有什么是随机的,但我无法查明原因)。
我已经阅读了 Jetbrains 的 article 关于使用集成的 V8 分析器功能进行 CPU 分析的文章Webstorm,但不幸的是它只显示了如何收集信息以及如何查看它,但它没有给我任何关于如何找到此类问题的提示,所以我几乎被困在这里。
任何人都可以帮助我解决这个问题并指导我,任何可能阻碍我的爬虫可能执行的快速服务器的提示(大量递归调用),或者如何找到我正在寻找和优化的那些热点他们?
【问题讨论】:
标签: node.js performance express web-crawler