From 4b7d306a198d020ce2b6fa1c758c71714bfd036c Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Sun, 24 Apr 2022 09:28:46 -0300 Subject: perf(serde_v8): zero-copy StringOrBuffer (#14381) --- serde_v8/benches/de.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'serde_v8/benches/de.rs') diff --git a/serde_v8/benches/de.rs b/serde_v8/benches/de.rs index 23b1161c7..72e5799cd 100644 --- a/serde_v8/benches/de.rs +++ b/serde_v8/benches/de.rs @@ -155,6 +155,54 @@ fn de_bstr_v8_1024_b(b: &mut Bencher) { ); } +fn de_sob_str_6b(b: &mut Bencher) { + dedo("'byebye'", |scope, v| { + b.iter(move || { + let _: serde_v8::StringOrBuffer = serde_v8::from_v8(scope, v).unwrap(); + }) + }) +} + +fn de_sob_str_1kb(b: &mut Bencher) { + dedo("'deno'.repeat(256)", |scope, v| { + b.iter(move || { + let _: serde_v8::StringOrBuffer = serde_v8::from_v8(scope, v).unwrap(); + }) + }) +} + +fn de_sob_buf_1b(b: &mut Bencher) { + dedo("new Uint8Array([97])", |scope, v| { + b.iter(move || { + let _: serde_v8::StringOrBuffer = serde_v8::from_v8(scope, v).unwrap(); + }) + }) +} + +fn de_sob_buf_1kb(b: &mut Bencher) { + dedo("(new Uint8Array(1*1024)).fill(42)", |scope, v| { + b.iter(move || { + let _: serde_v8::StringOrBuffer = serde_v8::from_v8(scope, v).unwrap(); + }) + }) +} + +fn de_sob_buf_16kb(b: &mut Bencher) { + dedo("(new Uint8Array(16*1024)).fill(42)", |scope, v| { + b.iter(move || { + let _: serde_v8::StringOrBuffer = serde_v8::from_v8(scope, v).unwrap(); + }) + }) +} + +fn de_sob_buf_512kb(b: &mut Bencher) { + dedo("(new Uint8Array(512*1024)).fill(42)", |scope, v| { + b.iter(move || { + let _: serde_v8::StringOrBuffer = serde_v8::from_v8(scope, v).unwrap(); + }) + }) +} + benchmark_group!( benches, de_struct_v8, @@ -174,6 +222,12 @@ benchmark_group!( de_tuple_v8_opt, de_bstr_v8_12_b, de_bstr_v8_1024_b, + de_sob_str_6b, + de_sob_str_1kb, + de_sob_buf_1b, + de_sob_buf_1kb, + de_sob_buf_16kb, + de_sob_buf_512kb, ); benchmark_main!(benches); -- cgit v1.2.3