![]() |
1
19
活动句柄句柄是对打开的资源(如打开的文件、数据库连接或请求)的引用。为了理解为什么句柄可能处于活动状态,尽管它们本应被关闭,我给您一个简单的示例:
这个代码是做什么的?它在端口上运行服务器
通常,内存泄漏更难检测,因为活动句柄可能会从一个函数传递到另一个函数,因此很难跟踪哪一个代码负责关闭连接。 活动句柄数量的增加意味着什么?如果您看到打开的句柄不断增加,那么代码中很可能存在内存泄漏。如示例中所示,您可能忘记关闭资源 内存泄漏尤其严重,如果您计划开发一个应该运行很长时间的脚本,比如web服务器。。。 如何检查内存泄漏?有多种方法可以检查内存泄漏。显然,最简单的方法就是关注记忆。pm2甚至内置了一个选项,以便在内存达到某一点时重新启动进程。有关此主题的更多信息,请访问 this guide . 这和木偶演员有什么关系?
有两件事。首先,请求非常便宜。即使节点中存在内存泄漏。js服务器应用程序,只有在几千个请求之后,您才能在内存中看到它。与此相反,木偶演员
非常
昂贵的打开Chromium浏览器将消耗50到100 MB的内存。因此,您应该确保启动的每个浏览器都将关闭。其次,正如前面提到的另一个答案,有一些对象(如
|
![]() |
2
1
Puppeter实际上有一种方法可以在您完成句柄处理后使用,以便垃圾收集器可以完成其工作。
你应该使用
查看文档: |
![]() |
Diego · 内存达到88%时服务器崩溃 7 年前 |
![]() |
Balanarayanan · 节点中的活动句柄是什么。js公司 7 年前 |
![]() |
user4893295 · 如何阻止pm2杀死分离的子进程 7 年前 |
![]() |
Habib Shahid · pm2错误:EMFILE,打开的文件太多 7 年前 |
![]() |
az2902 · 如何用参数启动pm2? 7 年前 |
![]() |
Aakshaye · 读取传递给节点的命令行参数。js使用pm2 9 年前 |
![]() |
Vijay Rajasekaran · 无法使用sudo npm安装全局模块 10 年前 |