chore: make bench harder

This commit is contained in:
Zixuan Chen 2022-08-13 02:19:43 +08:00
parent 7191668a65
commit 9c86dae038

View file

@ -5,21 +5,24 @@ use string_tree::{CustomString, StringTreeTrait};
pub fn main() { pub fn main() {
let mut tree: RleTree<CustomString, StringTreeTrait> = RleTree::default(); let mut tree: RleTree<CustomString, StringTreeTrait> = RleTree::default();
for i in 0..(1e6 as usize) { let len = 1e6 as usize;
tree.with_tree_mut(|tree| { let mut seed = 2;
if i % 3 == 0 && tree.len() > 0 {
tree.with_tree_mut(|tree| {
for i in 0..(len) {
seed = (seed * 2) % 10000007;
if tree.len() > 100000 {
let start = i % tree.len(); let start = i % tree.len();
let len = (i * i) % std::cmp::min(tree.len(), 10); let len = seed % std::cmp::min(tree.len(), 1);
let end = std::cmp::min(start + len, tree.len()); let end = std::cmp::min(start + len, tree.len());
tree.delete_range(Some(start), Some(end)) tree.delete_range(Some(start), Some(end))
} else if tree.len() == 0 { } else if tree.len() == 0 {
tree.insert(0, "a".to_string().into()); tree.insert(0, "0".into());
} else { } else {
tree.insert(i % tree.len(), "a".to_string().into()); tree.insert(seed % tree.len(), "a".into());
} }
}
tree.debug_check(); println!("{} op, with tree size of {}", len, tree.len());
}); });
}
println!("1M");
} }