From 94c8ecfaaa11906281685fe319ac460758dcd62a Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Mon, 7 Mar 2022 11:12:36 +0100 Subject: perf(serde_v8): optimize ByteString deserialization (#13853) --- serde_v8/benches/de.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'serde_v8/benches/de.rs') diff --git a/serde_v8/benches/de.rs b/serde_v8/benches/de.rs index 3b750ac28..23b1161c7 100644 --- a/serde_v8/benches/de.rs +++ b/serde_v8/benches/de.rs @@ -4,6 +4,7 @@ use bencher::{benchmark_group, benchmark_main, Bencher}; use serde::Deserialize; use serde_v8::utils::{js_exec, v8_do}; +use serde_v8::ByteString; #[derive(Debug, Deserialize, PartialEq)] struct MathOp { @@ -135,6 +136,25 @@ fn de_tuple_v8_opt(b: &mut Bencher) { }); } +fn de_bstr_v8_12_b(b: &mut Bencher) { + dedo(r#""hello world\n""#, |scope, v| { + b.iter(move || { + let _: ByteString = serde_v8::from_v8(scope, v).unwrap(); + }); + }); +} + +fn de_bstr_v8_1024_b(b: &mut Bencher) { + dedo( + r#""hello world\n".repeat(1e2).slice(0, 1024)"#, + |scope, v| { + b.iter(move || { + let _: ByteString = serde_v8::from_v8(scope, v).unwrap(); + }); + }, + ); +} + benchmark_group!( benches, de_struct_v8, @@ -152,6 +172,8 @@ benchmark_group!( de_tuple_v8, de_tuple_json, de_tuple_v8_opt, + de_bstr_v8_12_b, + de_bstr_v8_1024_b, ); benchmark_main!(benches); -- cgit v1.2.3