mirror of
https://github.com/denoland/deno.git
synced 2025-03-03 09:31:22 -05:00
perf(core): optimize encode on large strings (#14619)
Follow up to serde_v8's #14450
This commit is contained in:
parent
c9e9265c3e
commit
8744ee883e
2 changed files with 4 additions and 4 deletions
|
@ -896,11 +896,11 @@ fn encode(
|
|||
return;
|
||||
}
|
||||
};
|
||||
let text_str = text.to_rust_string_lossy(scope);
|
||||
let bytes: Box<[u8]> = text_str.into_bytes().into_boxed_slice();
|
||||
let text_str = serde_v8::to_utf8(text, scope);
|
||||
let bytes = text_str.into_bytes();
|
||||
let len = bytes.len();
|
||||
let backing_store =
|
||||
v8::ArrayBuffer::new_backing_store_from_boxed_slice(bytes).make_shared();
|
||||
v8::ArrayBuffer::new_backing_store_from_vec(bytes).make_shared();
|
||||
let buffer = v8::ArrayBuffer::with_backing_store(scope, &backing_store);
|
||||
let u8array = v8::Uint8Array::new(scope, buffer, 0, len).unwrap();
|
||||
rv.set(u8array.into())
|
||||
|
|
|
@ -8,7 +8,7 @@ mod ser;
|
|||
mod serializable;
|
||||
pub mod utils;
|
||||
|
||||
pub use de::{from_v8, from_v8_cached, Deserializer};
|
||||
pub use de::{from_v8, from_v8_cached, to_utf8, Deserializer};
|
||||
pub use error::{Error, Result};
|
||||
pub use keys::KeyCache;
|
||||
pub use magic::buffer::ZeroCopyBuf;
|
||||
|
|
Loading…
Add table
Reference in a new issue