diff options
| author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2022-03-07 11:12:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-07 11:12:36 +0100 |
| commit | 94c8ecfaaa11906281685fe319ac460758dcd62a (patch) | |
| tree | 8dc49b7b6761f708ba7bea61409693fba6e059df /serde_v8/benches/ser.rs | |
| parent | f65529aa67664d7ec90b8fb861686aac3ebc4a56 (diff) | |
perf(serde_v8): optimize ByteString deserialization (#13853)
Diffstat (limited to 'serde_v8/benches/ser.rs')
| -rw-r--r-- | serde_v8/benches/ser.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/serde_v8/benches/ser.rs b/serde_v8/benches/ser.rs index 8c87be261..3ba95fc2a 100644 --- a/serde_v8/benches/ser.rs +++ b/serde_v8/benches/ser.rs @@ -4,6 +4,7 @@ use bencher::{benchmark_group, benchmark_main, Bencher}; use serde::Serialize; use serde_v8::utils::v8_do; +use serde_v8::ByteString; #[derive(Serialize)] struct MathOp { @@ -87,6 +88,26 @@ fn ser_struct_v8_manual(b: &mut Bencher) { }); } +fn ser_bstr_12_b(b: &mut Bencher) { + serdo(|scope| { + let bstr = ByteString("hello world\n".to_owned().into_bytes()); + b.iter(|| { + let _ = serde_v8::to_v8(scope, &bstr).unwrap(); + }); + }); +} + +fn ser_bstr_1024_b(b: &mut Bencher) { + serdo(|scope| { + let mut s = "hello world\n".repeat(100); + s.truncate(1024); + let bstr = ByteString(s.into_bytes()); + b.iter(|| { + let _ = serde_v8::to_v8(scope, &bstr).unwrap(); + }); + }); +} + benchmark_group!( benches, ser_struct_v8, @@ -102,5 +123,7 @@ benchmark_group!( ser_tuple_v8, ser_tuple_json, ser_struct_v8_manual, + ser_bstr_12_b, + ser_bstr_1024_b, ); benchmark_main!(benches); |
