diff options
-rw-r--r-- | core/modules.rs | 3 | ||||
-rw-r--r-- | core/runtime.rs | 4 |
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) |