aboutsummaryrefslogtreecommitdiffstats
path: root/benches/concat.rs
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2024-01-12 21:03:25 -0800
committerRose Hogenson <rosehogenson@posteo.net>2024-01-12 21:03:25 -0800
commita41476ac28083a2d8a54161d4177b3ee5c028525 (patch)
tree34355d8e623ae56ca9f3cd5a8376bb0807a5c5b5 /benches/concat.rs
parent8d741fb146a599dd41915829ab309d96e9989435 (diff)
downloadeditor-a41476ac28083a2d8a54161d4177b3ee5c028525.tar.zst
Start tuning the performance of rope.
Diffstat (limited to 'benches/concat.rs')
-rw-r--r--benches/concat.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/benches/concat.rs b/benches/concat.rs
new file mode 100644
index 0000000..a07f908
--- /dev/null
+++ b/benches/concat.rs
@@ -0,0 +1,19 @@
+use criterion::{black_box, criterion_group, criterion_main, Criterion};
+
+use edit::rope::Rope;
+
+fn concat(buf: &[u8]) -> Rope {
+ let mut r = Rope::new(&[]);
+ for &b in buf.iter() {
+ r = r.concat(&Rope::new(&[b]));
+ }
+ r
+}
+
+fn criterion_benchmark(c: &mut Criterion) {
+ let bytes = vec![0; 10000];
+ c.bench_function("concat asdfasdf", |b| b.iter(|| concat(black_box(&bytes))));
+}
+
+criterion_group!(benches, criterion_benchmark);
+criterion_main!(benches);