summaryrefslogtreecommitdiff
path: root/serde_v8/benches/de.rs
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2022-03-07 11:12:36 +0100
committerGitHub <noreply@github.com>2022-03-07 11:12:36 +0100
commit94c8ecfaaa11906281685fe319ac460758dcd62a (patch)
tree8dc49b7b6761f708ba7bea61409693fba6e059df /serde_v8/benches/de.rs
parentf65529aa67664d7ec90b8fb861686aac3ebc4a56 (diff)
perf(serde_v8): optimize ByteString deserialization (#13853)
Diffstat (limited to 'serde_v8/benches/de.rs')
-rw-r--r--serde_v8/benches/de.rs22
1 files changed, 22 insertions, 0 deletions
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);