首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js优化模块可实现最佳性能

Node.js优化模块可实现最佳性能
EN

Stack Overflow用户
提问于 2016-09-23 22:34:41
回答 1查看 129关注 0票数 0

我正在编写一个爬虫模块,它递归地调用它自己,根据传递的depth选项参数下载越来越多的链接。

除此之外,我正在对我下载的返回资源执行更多任务(根据传递给爬虫的配置对其进行丰富/更改)。

这个过程会递归地进行,直到它完成为止,这可能需要很多时间(或者不需要),具体取决于所使用的配置。

我希望对它进行优化,使其尽可能快,并且不会阻碍任何使用它的Node.js应用程序。

我已经设置了一个express服务器,它的一个路由为用户定义的(查询字符串)主机启动爬虫。

在为不同的主机启动了几个爬虫会话后,我注意到,有时我可以从只返回简单文本的其他路由获得非常慢的响应。

延迟可能在几毫秒到30秒之间,而且似乎是随机发生的(好吧,没有什么是随机的,但我不能确定原因)。

我读过一篇Jetbrains的article,关于使用V8分析器功能进行CPU分析,该功能与Webstorm集成在一起,但不幸的是,它只显示了如何收集信息和如何查看信息,但它并没有给我任何关于如何发现此类问题的提示,所以我几乎被困在这里了。

有没有人可以帮我解决这个问题并指导我,有什么建议会阻碍我的爬虫可能做的快速服务器(许多递归调用),或者可能如何找到我正在寻找的热点并对其进行优化?

EN

回答 1

Stack Overflow用户

发布于 2016-09-23 22:44:58

关于如何优化未显示的代码,很难说出更具体的内容,但我可以给出一些与所描述的情况相关的建议。

我想到的一件事是,你可能正在运行一些阻塞代码。在不使用setTimeoutprocess.nextTick的情况下,不要使用深度递归来分解它,并让事件循环有机会偶尔运行一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39663413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档