Node.js内存管理

我尝试了Node.js v12.14.1。 使用require()加载模块时,会将模块缓存并加载到内存中。

a。我们如何知道内存占用空间的大小? 我使用以下命令来了解使用了多少内存。有更好的方法吗?

 $ /usr/bin/time -l <cmd> 
        0.08 real         0.04 user         0.01 sys
  26722304  maximum resident set size     // Provides the max memory usage in bytes
         0  average shared memory size
         0  average unshared data size
         0  average unshared stack size
      6714  page reclaims
         0  page faults
         0  swaps
         0  block input operations
         0  block output operations
         0  messages sent
         0  messages received
         0  signals received
        94  voluntary context switches
       155  involuntary context switches

下面的命令(仅启动节点REPL)显示最大内存使用量为21 MB。

> $ /usr/bin/time -l node

运行仅加载单个模块(例如:https://www.npmjs.com/package/email-templates)的程序时,内存占用为76 MB。

var emailTemplates = require('email-templates');
$ /usr/bin/time -l node index.js

我知道点火解释器与TurboFan一起将包括字节码的代码优化为更小的,更优化的字节码,最后是机器代码。

b。这仅适用于频繁执行的热/热代码吗?是否以任何方式优化了加载的模块?

我的目标是编写快速,优化并具有较小内存占用的JavaScript代码。我已经阅读了有关编写良好代码的文章(例如,较小的命名函数,不混合对象属性的数据类型,使用Promise库而不是本地Promise等)

非常感谢您的帮助。

hftxc 回答:Node.js内存管理

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2714652.html

大家都在问