mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-30 23:46:28 +00:00 
			
		
		
		
	Add benchmarks to the flatten-serde-json subcrate
This commit is contained in:
		| @@ -5,7 +5,12 @@ edition = "2021" | ||||
| description = "Flatten serde-json objects like elastic search" | ||||
| readme = "README.md" | ||||
|  | ||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
|  | ||||
| [dependencies] | ||||
| 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); | ||||
		Reference in New Issue
	
	Block a user