mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
refactor(core): Improve ergonomics of managing ASCII strings (#18498)
This is a follow-on to the earlier work in reducing string copies, mainly focused on ensuring that ASCII strings are easy to provide to the JS runtime. While we are replacing a 16-byte reference in a number of places with a 24-byte structure (measured via `std::mem::size_of`), the reduction in copies wins out over the additional size of the arguments passed into functions. Benchmarking shows approximately the same if not slightly less wallclock time/instructions retired, but I believe this continues to open up further refactoring opportunities.
This commit is contained in:
parent
2dc2016837
commit
a1764f7690
27 changed files with 817 additions and 641 deletions
|
@ -2899,7 +2899,7 @@ fn start(runtime: &mut JsRuntime, debug: bool) -> Result<(), AnyError> {
|
|||
let init_config = json!({ "debug": debug });
|
||||
let init_src = format!("globalThis.serverInit({init_config});");
|
||||
|
||||
runtime.execute_script(located_script_name!(), init_src)?;
|
||||
runtime.execute_script(located_script_name!(), init_src.into())?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -3493,7 +3493,7 @@ pub fn request(
|
|||
};
|
||||
let mark = performance.mark("request", Some(request_params.clone()));
|
||||
let request_src = format!("globalThis.serverRequest({request_params});");
|
||||
runtime.execute_script(located_script_name!(), request_src)?;
|
||||
runtime.execute_script(located_script_name!(), request_src.into())?;
|
||||
|
||||
let op_state = runtime.op_state();
|
||||
let mut op_state = op_state.borrow_mut();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue