dfinity / canister-profiling

Collection of canister performance benchmarks
Apache License 2.0
21 stars 8 forks source link

add gc benchmark #22

Closed chenyan-dfinity closed 1 year ago

github-actions[bot] commented 1 year ago

Warning The flamegraph link only works after you merge.

Collection libraries

generate 50k max mem batch_get 50 batch_put 50 batch_remove 50
hashmap 2_456_007_854 9_102_036 1_319_482 710_190_935 1_248_881
triemap 2_422_807_203 9_716_008 920_103 2_236_198 1_271_468
rbtree 2_322_981_525 10_102_164 844_569 2_120_544 998_470
splay 2_528_971_511 9_302_108 1_450_431 2_398_808 1_449_735
btreemap_rs 117_588_601 3_489_000 59_327 140_563 61_954
hashmap_rs 53_134_679 3_878_286 21_197 63_621 22_614

Priority queue

heapify 50k mem pop_min 50 put 50
heap 814_736_870 1_400_024 483_010 862_326 485_101
heap_rs 5_042_835 1_832_879 54_006 23_014 54_273

MoVM

generate 10k max mem batch_get 50 batch_put 50 batch_remove 50
hashmap 491_272_681 1_820_828 1_317_551 143_127_756 1_245_245
hashmap_rs 10_944_967 2_108_814 20_512 62_927 21_504
imrc_hashmap_rs 19_673_336 3_356_972 29_942 119_601 36_709
movm_rs 928_887_922 5_906_183 2_440_584 5_821_498 4_799_196
movm_dynamic_rs 485_461_161 4_885_017 1_871_619 2_654_140 1_831_245

Publisher & Subscriber

subscribe publish
Motoko caller (20_075) / callee (6_291) caller (16_044) / callee (3_947)
Rust caller (72_344) / callee (56_608) caller (120_527) / callee (69_257)

Heartbeat

heartbeat
Motoko 6_161
Rust 587

GC strategies

generate 80k max mem batch_get 50 batch_put 50 batch_remove 50
default 3_747_745_621 16_159_152 849_912 2_148_405 1_019_734
copying 3_747_745_571 16_159_152 278_455_827 279_925_073 278_796_208
compacting 3_903_609_428 16_159_152 321_648_420 396_014_118 389_028_108
generational 4_142_502_315 16_159_164 910_589 3_398_067 1_870_104

Basic DAO

init transfer_token submit_proposal vote_proposal
Motoko 46_267 21_378 15_305 18_157
Rust 1_079_829 181_395 176_823 239_656