How expensive are multiple requires on the same file on the same instance of Node JS?
My understanding of require (so far) is that it performs a traversal up the directory structure, looking for the module you're trying to import. Well, that's not exactly correct, but let's assume the directory traversal cost is negligible.
I have a module called BigModule. It has a lot of stuff in it, so there's some cost associated with loading it up with a require statement. Is importing it a hundred times a hundred times more expensive than importing it once, or is there some sort of caching mechanism which causes these scripts to share one BigModule instance? This is all happening on a single Node instance.
javascript typescript plugins
add a comment |
My understanding of require (so far) is that it performs a traversal up the directory structure, looking for the module you're trying to import. Well, that's not exactly correct, but let's assume the directory traversal cost is negligible.
I have a module called BigModule. It has a lot of stuff in it, so there's some cost associated with loading it up with a require statement. Is importing it a hundred times a hundred times more expensive than importing it once, or is there some sort of caching mechanism which causes these scripts to share one BigModule instance? This is all happening on a single Node instance.
javascript typescript plugins
add a comment |
My understanding of require (so far) is that it performs a traversal up the directory structure, looking for the module you're trying to import. Well, that's not exactly correct, but let's assume the directory traversal cost is negligible.
I have a module called BigModule. It has a lot of stuff in it, so there's some cost associated with loading it up with a require statement. Is importing it a hundred times a hundred times more expensive than importing it once, or is there some sort of caching mechanism which causes these scripts to share one BigModule instance? This is all happening on a single Node instance.
javascript typescript plugins
My understanding of require (so far) is that it performs a traversal up the directory structure, looking for the module you're trying to import. Well, that's not exactly correct, but let's assume the directory traversal cost is negligible.
I have a module called BigModule. It has a lot of stuff in it, so there's some cost associated with loading it up with a require statement. Is importing it a hundred times a hundred times more expensive than importing it once, or is there some sort of caching mechanism which causes these scripts to share one BigModule instance? This is all happening on a single Node instance.
javascript typescript plugins
javascript typescript plugins
asked Nov 12 at 18:43
Brent Allard
109211
109211
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
require() caches calls by resolved filepath; require()ing the same file twice (even via symlink or different relative path) will not rerun the code.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53268251%2fhow-expensive-are-multiple-requires-on-the-same-file-on-the-same-instance-of-nod%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
require() caches calls by resolved filepath; require()ing the same file twice (even via symlink or different relative path) will not rerun the code.
add a comment |
require() caches calls by resolved filepath; require()ing the same file twice (even via symlink or different relative path) will not rerun the code.
add a comment |
require() caches calls by resolved filepath; require()ing the same file twice (even via symlink or different relative path) will not rerun the code.
require() caches calls by resolved filepath; require()ing the same file twice (even via symlink or different relative path) will not rerun the code.
answered Nov 12 at 18:44
SLaks
677k13816261748
677k13816261748
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53268251%2fhow-expensive-are-multiple-requires-on-the-same-file-on-the-same-instance-of-nod%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown