From 8f9becee76f26db7893caabb9f3a1a7980791e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 16 Mar 2023 23:19:46 -0400 Subject: perf: disable runtime snapshot compression (#18239) This commit removes compression for the runtime JS code. It means that we will have a bigger binary, but faster startup. After several discussion in the CLI team we decided it's worth to trade about 3Mb of binary size for 2ms faster startup time. With WebGPU removed in 35196eab279340376929dd75ed717ef4830e2fa9 it shouldn't have such a big impact on the binary size. --- cli/js.rs | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) (limited to 'cli/js.rs') diff --git a/cli/js.rs b/cli/js.rs index 06a6a5fd9..fac771fd5 100644 --- a/cli/js.rs +++ b/cli/js.rs @@ -2,36 +2,13 @@ use deno_core::Snapshot; use log::debug; -use once_cell::sync::Lazy; -pub static CLI_SNAPSHOT: Lazy> = Lazy::new( - #[allow(clippy::uninit_vec)] - #[cold] - #[inline(never)] - || { - static COMPRESSED_CLI_SNAPSHOT: &[u8] = - include_bytes!(concat!(env!("OUT_DIR"), "/CLI_SNAPSHOT.bin")); - - let size = - u32::from_le_bytes(COMPRESSED_CLI_SNAPSHOT[0..4].try_into().unwrap()) - as usize; - let mut vec = Vec::with_capacity(size); - - // SAFETY: vec is allocated with exact snapshot size (+ alignment) - // SAFETY: non zeroed bytes are overwritten with decompressed snapshot - unsafe { - vec.set_len(size); - } - - lzzzz::lz4::decompress(&COMPRESSED_CLI_SNAPSHOT[4..], &mut vec).unwrap(); - - vec.into_boxed_slice() - }, -); +static CLI_SNAPSHOT: &[u8] = + include_bytes!(concat!(env!("OUT_DIR"), "/CLI_SNAPSHOT.bin")); pub fn deno_isolate_init() -> Snapshot { debug!("Deno isolate init with snapshots."); - Snapshot::Static(&CLI_SNAPSHOT) + Snapshot::Static(CLI_SNAPSHOT) } #[cfg(test)] -- cgit v1.2.3