summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-05-03 00:36:33 +0200
committerGitHub <noreply@github.com>2023-05-03 00:36:33 +0200
commit798c1ad0f1de80ff0e7196b6140a3f74e31fe111 (patch)
tree44233e68b9846ee3335b68b3ddaff00bec76d91f /cli
parentadcda4fa640939682076e793f12a5b22e3de1f50 (diff)
perf: use jemalloc as global allocator (#18957)
Follow up to https://github.com/denoland/deno/pull/18875 that enables `jemalloc` as a global allocator for the Deno CLI.
Diffstat (limited to 'cli')
-rw-r--r--cli/Cargo.toml3
-rw-r--r--cli/main.rs7
-rw-r--r--cli/napi/async.rs3
3 files changed, 12 insertions, 1 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index 319c8cb56..63842a6a3 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -120,6 +120,9 @@ winapi = { workspace = true, features = ["knownfolders", "mswsock", "objbase", "
[target.'cfg(unix)'.dependencies]
nix.workspace = true
+[target.'cfg(not(target_env = "msvc"))'.dependencies]
+tikv-jemallocator.workspace = true
+
[dev-dependencies]
deno_bench_util.workspace = true
dotenv = "=0.15.0"
diff --git a/cli/main.rs b/cli/main.rs
index 85942cbd8..c3421b0cd 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -26,6 +26,13 @@ mod version;
mod watcher;
mod worker;
+#[cfg(not(target_env = "msvc"))]
+use tikv_jemallocator::Jemalloc;
+
+#[cfg(not(target_env = "msvc"))]
+#[global_allocator]
+static GLOBAL: Jemalloc = Jemalloc;
+
use crate::args::flags_from_vec;
use crate::args::DenoSubcommand;
use crate::args::Flags;
diff --git a/cli/napi/async.rs b/cli/napi/async.rs
index 8cbdb2220..e6695551a 100644
--- a/cli/napi/async.rs
+++ b/cli/napi/async.rs
@@ -24,7 +24,8 @@ fn napi_create_async_work(
execute,
complete,
};
- *result = transmute::<Box<AsyncWork>, _>(Box::new(work));
+ let work_box = Box::new(work);
+ *result = transmute::<*mut AsyncWork, _>(Box::into_raw(work_box));
Ok(())
}