# Benchmarks in real canister using performance counter API [Here](../examples/performance_counter) is the canister. Run it, open the Candid UI interface and use it to check each method yourself. ## `Vec` vs `SVec` vs `SLog` ### Push `100_000` elements ``` vec -> `6475564` svec -> `26655890` - x4.1 slower slog -> `14153495` - x2.2 slower ``` ### Get `100_000` elements ``` vec -> `2700206` svec -> `17200206` - x6.4 slower slog -> `34324270` - x12.7 slower ``` ### Pop `100_000` elements ``` vec -> `1800205` svec -> `10800205` - x6 slower slog -> `11356247` - x6.3 slower ``` ### Insert `10_000` elements at index `0` ``` vec -> `1501540165` svec -> `1810841649` - x1.2 slower ``` ### Remove `10_000` elements from index `0` ``` vec -> `1501320269` svec -> `1808971703` - x1.2 slower ``` ## `HashMap` vs `SHashMap` ### Insert `100_000` entries ``` hashmap -> `122284638` shashmap -> `214530518` - x1.75 slower ``` ### Get `100_000` entries ``` hashmap -> `47729801` shashmap -> `48427466` - x1.01 slower ``` ### Remove `100_000` entries ``` hashmap -> `56731751` shashmap -> `97830942` - x1.72 slower ``` ## `HashSet` vs `SHashSet` ### Insert `100_000` keys ``` hashset -> `123675757` shashset -> `188571411` - x1.53 slower ``` ### Contains `100_000` keys ``` hashset -> `53030507` shashset -> `42327466` - x1.25 faster ``` ### Remove `100_000` keys ``` hashset -> `56752000` shashset -> `94205462` - x1.66 slower ``` ## `BTreeMap` vs `SBTreeMap` ### Insert `100_000` entries ``` btreemap -> `201187638` sbtreemap -> `424801097` - x2.1 slower ``` ### Get `100_000` entries ``` btreemap -> `86267536` sbtreemap -> `275698231` - x3.2 slower ``` ### Remove `100_000` entries ``` btreemap -> `157682120` sbtreemap -> `501973804` - x3.2 slower ``` ## `BTreeSet` vs `SBTreeSet` ### Insert `100_000` keys ``` btreeset -> `190744590` sbtreeset -> `477202531` - x2.5 slower ``` ### Contains `100_000` keys ``` btreeset -> `84467536` sbtreeset -> `267576134` - x3.2 slower ``` ### Remove `100_000` keys ``` btreeset -> `112840917` sbtreeset -> `617281117` - x5.5 slower ``` ## `RBTree` vs `SCertifiedBTreeMap` ### Insert `5_000` entries ``` rbtree -> `5627092211` scertifiedbtreemap -> `9108725043` - x1.6 slower scertifiedbtreemap (in batches of 10) -> `1354608056` - x4.1 faster ``` ### Witness `5_000` entries ``` rbtree -> `3273570622` scertifiedbtreemap -> `3541619761` - x1.08 slower ``` ### Remove `5_000` entries ``` rbtree -> `9359364040` scertifiedbtreemap -> `6693095737` - x1.4 faster scertifiedbtreemap (in batches of 10) -> `731156025` - x12.8 faster ```