mirror of
https://github.com/loro-dev/loro.git
synced 2025-01-23 13:39:12 +00:00
d942e3d7a2
* feat: richtext wip * feat: add insert to style range map wip * feat: richtext state * fix: fix style state inserting and style map * fix: tiny vec merge err * fix: comment err * refactor: use new generic-btree & refine impl * feat: fugue tracker * feat: tracker * feat: tracker * fix: fix a few err in impl * feat: init richtext content state * feat: refactor arena * feat: extract anchor_type info out of style flag * refactor: state apply op more efficiently we can now reuse the repr in state and op * fix: new clippy errors * refactor: use state chunk as delta item * refactor: use two op to insert style start and style end * feat: diff calc * feat: handler * fix: tracker checkout err * fix: pass basic richtext handler tests * fix: pass handler basic marking tests * fix: pass all peritext criteria * feat: snapshot encoding for richtext init * refactor: replace Text with Richtext * refacotr: rm text code * fix: richtext checkout err * refactor: diff of text and map * refactor: del span * refactor: event * fix: fuzz err * fix: pass all tests * fix: fuzz err * fix: list child cache err * chore: rm debug code * fix: encode enhanced err * fix: encode enchanced * fix: fix several richtext issue * fix: richtext anchor err * chore: rm debug code * fix: richtext fuzz err * feat: speedup text snapshot decode * perf: optimize snapshot encoding * perf: speed up decode & insert * fix: fugue span merge err * perf: speedup delete & id cursor map * fix: fugue merge err * chore: update utils * perf: speedup text insert / del * fix: cursor cache * perf: reduce conversion by introducing InsertText * perf: speed up by refined cursor cache * chore: update gbtree dep * refactor(wasm): use quill delta format * chore: fix warnings
36 lines
1.1 KiB
Rust
36 lines
1.1 KiB
Rust
use bench_utils::draw::{gen_draw_actions, DrawAction};
|
|
use criterion::{criterion_group, criterion_main, Criterion};
|
|
use loro_internal::LoroDoc;
|
|
|
|
pub fn draw(c: &mut Criterion) {
|
|
let mut data = None;
|
|
c.bench_function("simulate drawing", |b| {
|
|
if data.is_none() {
|
|
data = Some(gen_draw_actions(100, 1000));
|
|
}
|
|
|
|
let mut loro = LoroDoc::new();
|
|
b.iter(|| {
|
|
loro = LoroDoc::new();
|
|
let _paths = loro.get_list("all_paths");
|
|
let _texts = loro.get_list("all_texts");
|
|
for action in data.as_ref().unwrap().iter() {
|
|
match action {
|
|
DrawAction::DrawPath { points: _, color: _ } => {}
|
|
DrawAction::Text {
|
|
id: _,
|
|
text: _,
|
|
pos: _,
|
|
width: _,
|
|
height: _,
|
|
} => todo!(),
|
|
}
|
|
}
|
|
});
|
|
|
|
println!("Snapshot size = {}", loro.export_snapshot().len())
|
|
});
|
|
}
|
|
|
|
criterion_group!(benches, draw);
|
|
criterion_main!(benches);
|