summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/modules.rs3
-rw-r--r--core/runtime.rs4
2 files changed, 5 insertions, 2 deletions
diff --git a/core/modules.rs b/core/modules.rs
index 3a3b1c370..ee5f72d9d 100644
--- a/core/modules.rs
+++ b/core/modules.rs
@@ -1129,7 +1129,8 @@ impl ModuleMap {
let info_arr: v8::Local<v8::Array> = info_val.try_into().unwrap();
let len = info_arr.length() as usize;
- let mut info = Vec::with_capacity(len);
+ // Over allocate so executing a few scripts doesn't have to resize this vec.
+ let mut info = Vec::with_capacity(len + 16);
for i in 0..len {
let module_info_arr: v8::Local<v8::Array> = info_arr
diff --git a/core/runtime.rs b/core/runtime.rs
index 456dbe828..b9da06346 100644
--- a/core/runtime.rs
+++ b/core/runtime.rs
@@ -463,7 +463,6 @@ impl JsRuntime {
}
}
- let mut module_handles = vec![];
let mut scope = v8::ContextScope::new(scope, context);
// The 0th element is the module map itself, followed by X number of module
// handles. We need to deserialize the "next_module_id" field from the
@@ -476,6 +475,9 @@ impl JsRuntime {
info_data.length()
};
+ // Over allocate so executing a few scripts doesn't have to resize this vec.
+ let mut module_handles =
+ Vec::with_capacity(next_module_id as usize + 16);
for i in 1..=next_module_id {
match scope
.get_context_data_from_snapshot_once::<v8::Module>(i as usize)