在多个文件中具有相同的“require”是否会增加运行时间

2023-12-13

所以我计划将我的函数分成单独的文件,然后将它们导入到一个单独的文件中index.js然后成为主要出口国。所以我想知道是否有类似的东西var bcrypt = require('bcrypt')在我的几个文件中比仅在一个文件中慢。

这是我计划在 index.js 中分组和导出的方式

const fs = require('fs');
const path = require('path')
const modules = {}

const files = fs.readdirSync(__dirname)
files.forEach(file => {
    if (file === 'index.js') return
    let temp = require(path.join(__dirname, file))

    for (let key in temp) {
        modules[key] = temp[key]
    }
});
module.exports = modules

举个例子来说明我的意思:

file1.js

var bcrypt = require("bcrypt");

module.exports.file1test = "hi"

文件2.js

var bcrypt = require("bcrypt");

module.exports.file2test = "bye"

不,不是的。每当一个模块required 第一次,模块的代码运行,为其导出分配一些内容,然后返回这些导出。更远require该模块的 s 只是再次引用这些导出。逻辑类似于:

const importModule = (() => {
  const exports = {};
  return (name) => {
    if (!exports[name]) exports[name] = runModule(name);
    return exports[name];
  };
})();

所以,多个import同一模块的 s 并不比多次引用一个对象更昂贵。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在多个文件中具有相同的“require”是否会增加运行时间 的相关文章

随机推荐

  • 颤振错误:java.lang.NoSuchFieldError PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING

    我试图解决这个问题 但它总是给我同样的错误 我使用以下 Firebase 服务 Firebase 身份验证 Firebase 数据库 Firebase 存储 Firebase 消息传递 我希望能解决这个问题 感谢您的帮助 谢谢 截屏 Her
  • 如何从分类变量创建交互设计矩阵?

    我主要从事 R 统计建模 机器学习工作 并希望提高我的 Python 技能 我想知道在 python 中创建分类交互 任意程度 的设计矩阵的最佳方法 一个玩具示例 import pandas as pd from urllib import
  • DDD 中的有界上下文与 CQRS。共享聚合/实体。可能的?

    我找到了这个代码示例 https code google com p ddd cqrs sample 看起来非常完整且组织良好 不是一个 框架 只是一个示例项目 具有非常精细和明确的做事方式 但是 不完整 这带来了一些疑问 他们很擅长回答你
  • 使用 numpy 加权百分位数

    有没有办法使用 numpy percentile 函数来计算加权百分位数 或者有人知道计算加权百分位数的替代 python 函数吗 thanks 完全矢量化的 numpy 解决方案 这是我使用的代码 这不是一个最佳的 我无法用numpy 但
  • 从 C# 控制相机设备

    我现在面临一个问题 要将实时图像从相机 例如索尼 佳能 获取到winform 并从表单中的按钮控制相机捕获按钮 有没有人构建过这样的东西 或者有没有类似的项目是用 C 完成的 这几乎取决于相机及其驱动程序的功能 您最大的机会可能是 Wind
  • 时间:2019-03-17 标签:c#dllimportwithpointers

    我有一个 dll 无法导入到我的 vs2012 c 项目中 我以前使用过 dllImport 但以前从未使用过 Marshal 或指针 我想我很幸运 这是我目前拥有的代码 被调用的函数是 fnLDA GetDevInfo DEVID Act
  • 如果在存储库中发生更改,是否可以停止跟踪您“确实”想要下拉的文件的本地更改?

    我们在存储库中有一个配置文件 所有用户都根据其功能贡献该文件 对于我的本地测试 我需要手动更改该配置文件中的两个值 但我不想将更改提交回服务器 但是 如果存储库中有更新的版本 我确实希望对文件进行更新 即使这意味着我的本地更改将被覆盖 没关
  • 使用 ld 链接动态链接的可执行文件

    我正在尝试创建一个不使用 gcc 的动态链接可执行文件 elf i386 该程序非常简单 只有一个 printf 这里的命令 gcc c simple c ld o simple dynamic linker lib ld linux so
  • 替代正则表达式来匹配前两个破折号之间的所有文本

    我正在尝试使用以下正则表达式 它似乎工作得很好regexr但 python 说没有什么可重复的 我正在尝试匹配前两个破折号之间的所有文本 或者如果在第一个破折号之后不存在第二个破折号 则第一个破折号中的所有文本都不存在 向前 另外 上面的正
  • 如何在 jetpack Compose 的 LazyColumn 中对齐不同的项目

    我正在使用 firebase 构建一个聊天应用程序 我需要在编写消息时最后和在接收时开始时对齐聊天气泡 就像在 Whatsapp 中一样 如果我在lazyColumn中使用horizo ntalArrangement 它会影响所有项目 我尝
  • jQuery 验证插件问题(远程验证)

    我在尝试使用以下方法验证用户值时遇到问题jQuery 验证插件 验证似乎正确触发并完全按照我想要的方式调用 Web 服务函数 但是 即使服务器函数确实正常工作并返回true false结果该字段始终无效 这是客户端的验证码 myForm v
  • Java中使用glob匹配路径字符串

    我有以下字符串作为全局规则 txt 以及测试数据 foo bar txt foo buz jpg foo oof text txt 是否可以使用 glob 规则 无需将 glob 转换为正则表达式 来匹配测试数据并返回值条目 要求一 Jav
  • 在 VBScript 中搜索字符串以验证是否包含字符

    我想看看一个字符串是否包含一个点 Set Root Currency Root TaxDataSummary SlvObject Currency curr val InStr Root Currency If curr val exist
  • 如何在 appengine java 应用程序中创建包含 google 云存储对象的 zip 存档?

    假设我有 50 个对象 每个对象 15Mb 存储在 Google Cloud Storage 中 现在我需要创建一个包含所有这些内容的 zip 存档并将生成的文件存储回 GCS 如何在 appengine java 应用程序中执行此操作 我
  • 匹配有效日期的正则表达式

    我正在尝试编写一个验证日期的正则表达式 正则表达式需要匹配以下内容 M D YYYY 月 日 年 单位数月份可以以前导零开头 例如 03 12 2008 单位数日期可以以前导零开头 例如 3 02 2008 不能包含 2 月 30 日或 2
  • 如何使用通知栏从服务调用活动

    这是我的情况 A1 启动画面活动 A2 主要活动 A3 额外活动 S1 GPS 服务 我从 A1 开始 创建启动 A2 的意图 然后 A1 完成 在 A2 内我创建并绑定 S1 在 S1 内我发出通知 CharSequence text g
  • ASP.NET 返回多个变量进行查看

    我无法弄清楚如何将多个变量返回到视图 像这样的东西 我可以得到一点帮助吗 public ActionResult CheatSheet var var1 from ts in db thisdatabase select ts var va
  • 如何将日期时间分配给带有间隔和日期开始的高图表

    HI 在 highchart 中 有什么方法可以在 x 轴上给出时间 如下所示 1 通过开始时间2 给出时间点数组3 给出时间单位 例如 start time will set as pointStart Date UTC timeArr
  • TeamCity:使用工件的文件版本标记 VCS (Subversion)

    我想在 SVN 中创建一个带有文件版本的标签 标签 我已经通过获取构建生成的主要可执行文件的文件版本来重命名该工件 例如 MyInstaller 1 2 3 1 exe 现在我想在 SVN 中创建一个名为 tags 1 2 3 1 我找不到
  • 在多个文件中具有相同的“require”是否会增加运行时间

    所以我计划将我的函数分成单独的文件 然后将它们导入到一个单独的文件中index js然后成为主要出口国 所以我想知道是否有类似的东西var bcrypt require bcrypt 在我的几个文件中比仅在一个文件中慢 这是我计划在 ind