mirror of
https://github.com/denoland/deno.git
synced 2025-08-03 18:38:33 +00:00
perf(napi): optimize primitive napi functions (#16163)
This optimization applies on `napi_get_undefined`, `napi_get_null` & `napi_get_boolean`. ``` # main benchmark time (avg) (min … max) p75 p99 p995 ---------------------------------------------------------- ----------------------------- warmup 482.55 ps/iter (462.5 ps … 15.67 ns) 475 ps 525 ps 829.1 ps napi_get_undefined 25.07 ns/iter (24.03 ns … 36.87 ns) 25.37 ns 27.09 ns 34.85 ns ``` ``` # This patch benchmark time (avg) (min … max) p75 p99 p995 ---------------------------------------------------------- ----------------------------- warmup 484.78 ps/iter (462.5 ps … 14.4 ns) 475 ps 554.1 ps 583.3 ps napi_get_undefined 15.52 ns/iter (15.35 ns … 22.14 ns) 15.41 ns 17.18 ns 20.02 ns ```
This commit is contained in:
parent
be80c57b3c
commit
e136bd86b3
7 changed files with 49 additions and 4 deletions
|
@ -1333,7 +1333,7 @@ fn napi_get_boolean(
|
|||
) -> Result {
|
||||
let env: &mut Env = env.as_mut().ok_or(Error::InvalidArg)?;
|
||||
let value: v8::Local<v8::Value> =
|
||||
v8::Boolean::new(&mut env.scope(), value).into();
|
||||
v8::Boolean::new(env.isolate(), value).into();
|
||||
*result = value.into();
|
||||
Ok(())
|
||||
}
|
||||
|
@ -1520,7 +1520,7 @@ fn napi_get_new_target(
|
|||
fn napi_get_null(env: *mut Env, result: *mut napi_value) -> Result {
|
||||
let env: &mut Env = env.as_mut().ok_or(Error::InvalidArg)?;
|
||||
|
||||
let value: v8::Local<v8::Value> = v8::null(&mut env.scope()).into();
|
||||
let value: v8::Local<v8::Value> = v8::null(env.isolate()).into();
|
||||
*result = value.into();
|
||||
Ok(())
|
||||
}
|
||||
|
@ -1611,7 +1611,7 @@ fn napi_get_typedarray_info(
|
|||
#[napi_sym::napi_sym]
|
||||
fn napi_get_undefined(env: *mut Env, result: *mut napi_value) -> Result {
|
||||
let env: &mut Env = env.as_mut().ok_or(Error::InvalidArg)?;
|
||||
let value: v8::Local<v8::Value> = v8::undefined(&mut env.scope()).into();
|
||||
let value: v8::Local<v8::Value> = v8::undefined(env.isolate()).into();
|
||||
*result = value.into();
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue