From 98374de883a0113036c81e5ce9e7dcfe267eb4bb Mon Sep 17 00:00:00 2001 From: Ethiraric Date: Fri, 15 Mar 2024 12:47:40 +0100 Subject: [PATCH] Create a deeper YAML in `nested.yaml`. This requires heavily reducing the number of nodes since they are on average more indented. Leaving 5M nodes results in files larger than 1GB. --- parser/tools/gen_large_yaml/src/main.rs | 2 +- parser/tools/gen_large_yaml/src/nested.rs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/parser/tools/gen_large_yaml/src/main.rs b/parser/tools/gen_large_yaml/src/main.rs index d478e8b..1c7ee6e 100644 --- a/parser/tools/gen_large_yaml/src/main.rs +++ b/parser/tools/gen_large_yaml/src/main.rs @@ -26,7 +26,7 @@ fn main() -> std::io::Result<()> { println!("Generating nested.yaml"); let mut out = BufWriter::new(File::create(output_path.join("nested.yaml")).unwrap()); - nested::create_deep_object(&mut out, 5_000_000)?; + nested::create_deep_object(&mut out, 1_100_000)?; println!("Generating small_objects.yaml"); let mut out = BufWriter::new(File::create(output_path.join("small_objects.yaml")).unwrap()); diff --git a/parser/tools/gen_large_yaml/src/nested.rs b/parser/tools/gen_large_yaml/src/nested.rs index 92dc21a..f54b55c 100644 --- a/parser/tools/gen_large_yaml/src/nested.rs +++ b/parser/tools/gen_large_yaml/src/nested.rs @@ -48,7 +48,8 @@ impl Tree { fn push_node(&mut self) { let new_node = Node::new_rc_refcell(); let n_nodes = self.nodes.len(); - let parent = &mut self.nodes[self.rng.gen_range(0..n_nodes)]; + // Bias the nodes towards the end so that there is more nesting. + let parent = &mut self.nodes[self.rng.gen_range((3 * n_nodes / 4)..n_nodes)]; (**parent).borrow_mut().push_child(new_node.clone()); self.nodes.push(new_node); }