【问题标题】:Node - Is it more memory efficient to require module inside setInterval versus outside?节点 - 在 setInterval 内部与外部相比,需要模块是否更节省内存?
【发布时间】:2017-03-22 03:04:16
【问题描述】:

我有一个 Node 文件,用作 Linux 服务器上的服务文件/守护进程。

类似这样的:

const m = require('./local-module')

setInterval(m, duration)

该模块导出一个函数,但还包含一些“全局”变量,我注意到每次调用函数时这些变量都是相同的,这对我来说很有意义。

这让我想知道是否是这样的:

setInterval(() => {
  require('./local-module')()
}), duration)

内存效率更高吗?以一种方式进行是否比另一种方式更有好处?

【问题讨论】:

    标签: node.js daemon


    【解决方案1】:

    require() 的调用将被缓存,并将返回相同的实例。不管你有没有

    var thing = require('thing'); thing.stuff()

    require('thing').stuff()

    每次都是同一个“事物”实例。

    为了可读性和约定,将需求放在顶部更为常见。但是,由于在文件加载时(在应用程序启动时)会加载 require 模块,因此您可能不喜欢某些测试路径或模拟或初始化序列。在代码中间使用require() 只会在调用时加载模块,因此您可以偷懒,这有时很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-19
      • 2018-02-08
      • 2019-10-19
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2021-12-16
      相关资源
      最近更新 更多