mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-23 02:27:40 +08:00
Add benchmarks to the flatten-serde-json subcrate
This commit is contained in:
parent
3828635fb2
commit
436d2032c4
@ -5,7 +5,12 @@ edition = "2021"
|
|||||||
description = "Flatten serde-json objects like elastic search"
|
description = "Flatten serde-json objects like elastic search"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
criterion = { version = "0.3", features = ["html_reports"] }
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "benchmarks"
|
||||||
|
harness = false
|
||||||
|
42
flatten-serde-json/benches/benchmarks.rs
Normal file
42
flatten-serde-json/benches/benchmarks.rs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
|
||||||
|
use flatten_serde_json::flatten;
|
||||||
|
use serde_json::json;
|
||||||
|
|
||||||
|
pub fn flatten_simple(c: &mut Criterion) {
|
||||||
|
let mut input = json!({
|
||||||
|
"a": {
|
||||||
|
"b": "c",
|
||||||
|
"d": "e",
|
||||||
|
"f": "g"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let object = input.as_object_mut().unwrap();
|
||||||
|
|
||||||
|
c.bench_with_input(BenchmarkId::new("flatten", "simple"), &object, |b, input| {
|
||||||
|
b.iter(|| flatten(input))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn flatten_complex(c: &mut Criterion) {
|
||||||
|
let mut input = json!({
|
||||||
|
"a": [
|
||||||
|
"b",
|
||||||
|
["c", "d"],
|
||||||
|
{ "e": ["f", "g"] },
|
||||||
|
[
|
||||||
|
{ "h": "i" },
|
||||||
|
{ "e": ["j", { "z": "y" }] },
|
||||||
|
],
|
||||||
|
["l"],
|
||||||
|
"m",
|
||||||
|
]
|
||||||
|
});
|
||||||
|
let object = input.as_object_mut().unwrap();
|
||||||
|
|
||||||
|
c.bench_with_input(BenchmarkId::new("flatten", "complex"), &object, |b, input| {
|
||||||
|
b.iter(|| flatten(input))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
criterion_group!(benches, flatten_simple, flatten_complex);
|
||||||
|
criterion_main!(benches);
|
Loading…
Reference in New Issue
Block a user