Skip to content

Commit 35a578a

Browse files
committed
dict.go: implement ordered dictionary.
benchmark old ns/op new ns/op delta BenchmarkEscapeRune/low_values-4 26.4 26.5 +0.38% BenchmarkEscapeRune/mid_values-4 33.5 33.3 -0.60% BenchmarkEscapeRune/high_values-4 47.6 46.6 -2.10% BenchmarkGetAttr-4 129 124 -3.88% BenchmarkDictSetItem/3-elements-4 926 659 -28.83% BenchmarkDictSetItem/5-elements-4 1302 1238 -4.92% BenchmarkDictSetItem/8-elements-4 2357 1595 -32.33% BenchmarkDictSetItem/12-elements-4 3149 3366 +6.89% BenchmarkDictSetItem/16-elements-4 3930 3809 -3.08% BenchmarkDictSetItem/24-elements-4 7040 4680 -33.52% BenchmarkDictSetItem/32-elements-4 8418 5753 -31.66% BenchmarkDictGetItem-4 181 179 -1.10% BenchmarkDictGetItemBig-4 3164 3320 +4.93% BenchmarkDictIterItems/0-elements-4 921 600 -34.85% BenchmarkDictIterItems/1-elements-4 1020 738 -27.65% BenchmarkDictIterItems/2-elements-4 1151 863 -25.02% BenchmarkDictIterItems/3-elements-4 1296 1030 -20.52% BenchmarkDictIterItems/4-elements-4 1427 1144 -19.83% BenchmarkDictIterItems/5-elements-4 1592 1255 -21.17% BenchmarkDictIterItems/6-elements-4 1874 1349 -28.01% BenchmarkDictIterItems/7-elements-4 1986 1485 -25.23% BenchmarkDictIterItems/8-elements-4 2118 1621 -23.47% BenchmarkDictIterKeys/0-elements-4 914 620 -32.17% BenchmarkDictIterKeys/1-elements-4 1010 704 -30.30% BenchmarkDictIterKeys/2-elements-4 1079 798 -26.04% BenchmarkDictIterKeys/3-elements-4 1205 883 -26.72% BenchmarkDictIterKeys/4-elements-4 1305 978 -25.06% BenchmarkDictIterKeys/5-elements-4 1375 1078 -21.60% BenchmarkDictIterKeys/6-elements-4 1700 1176 -30.82% BenchmarkDictIterKeys/7-elements-4 1787 1276 -28.60% BenchmarkDictIterKeys/8-elements-4 1867 1375 -26.35% BenchmarkDictIterKeys/9-elements-4 1955 1510 -22.76% BenchmarkDictIterValues/0-elements-4 923 606 -34.34% BenchmarkDictIterValues/1-elements-4 929 634 -31.75% BenchmarkDictIterValues/2-elements-4 950 665 -30.00% BenchmarkDictIterValues/3-elements-4 981 688 -29.87% BenchmarkDictIterValues/4-elements-4 1003 724 -27.82% BenchmarkDictIterValues/5-elements-4 1021 754 -26.15% BenchmarkDictIterValues/6-elements-4 1271 768 -39.58% BenchmarkDictIterValues/7-elements-4 1288 793 -38.43% BenchmarkDictIterValues/8-elements-4 1307 831 -36.42% BenchmarkIntNew/interned-4 0.96 0.96 +0.00% BenchmarkIntNew/not_interned-4 70.2 70.2 +0.00% BenchmarkListContains/false-3-4 1261 1041 -17.45% BenchmarkListContains/false-10-4 2263 2054 -9.24% BenchmarkListContains/true-3.1-4 293 294 +0.34% BenchmarkListContains/true-3.3-4 556 559 +0.54% BenchmarkListContains/true-10.10-4 1457 1464 +0.48% BenchmarkNewStr-4 114 112 -1.75% BenchmarkTupleContains/false-3-4 2037 1811 -11.09% BenchmarkTupleContains/false-10-4 4346 4193 -3.52% BenchmarkTupleContains/true-3.1-4 611 609 -0.33% BenchmarkTupleContains/true-3.3-4 1298 1311 +1.00% BenchmarkTupleContains/true-10.10-4 3643 3688 +1.24% benchmark old allocs new allocs delta BenchmarkEscapeRune/low_values-4 1 1 +0.00% BenchmarkEscapeRune/mid_values-4 1 1 +0.00% BenchmarkEscapeRune/high_values-4 1 1 +0.00% BenchmarkGetAttr-4 0 0 +0.00% BenchmarkDictSetItem/3-elements-4 6 3 -50.00% BenchmarkDictSetItem/5-elements-4 8 5 -37.50% BenchmarkDictSetItem/8-elements-4 13 5 -61.54% BenchmarkDictSetItem/12-elements-4 17 8 -52.94% BenchmarkDictSetItem/16-elements-4 21 8 -61.90% BenchmarkDictSetItem/24-elements-4 31 8 -74.19% BenchmarkDictSetItem/32-elements-4 39 8 -79.49% BenchmarkDictGetItem-4 1 1 +0.00% BenchmarkDictGetItemBig-4 1 1 +0.00% BenchmarkDictIterItems/0-elements-4 6 4 -33.33% BenchmarkDictIterItems/1-elements-4 7 5 -28.57% BenchmarkDictIterItems/2-elements-4 8 6 -25.00% BenchmarkDictIterItems/3-elements-4 9 7 -22.22% BenchmarkDictIterItems/4-elements-4 10 8 -20.00% BenchmarkDictIterItems/5-elements-4 11 9 -18.18% BenchmarkDictIterItems/6-elements-4 12 10 -16.67% BenchmarkDictIterItems/7-elements-4 13 11 -15.38% BenchmarkDictIterItems/8-elements-4 14 12 -14.29% BenchmarkDictIterKeys/0-elements-4 6 4 -33.33% BenchmarkDictIterKeys/1-elements-4 6 4 -33.33% BenchmarkDictIterKeys/2-elements-4 6 4 -33.33% BenchmarkDictIterKeys/3-elements-4 6 4 -33.33% BenchmarkDictIterKeys/4-elements-4 6 4 -33.33% BenchmarkDictIterKeys/5-elements-4 6 4 -33.33% BenchmarkDictIterKeys/6-elements-4 6 4 -33.33% BenchmarkDictIterKeys/7-elements-4 6 4 -33.33% BenchmarkDictIterKeys/8-elements-4 6 4 -33.33% BenchmarkDictIterKeys/9-elements-4 6 4 -33.33% BenchmarkDictIterValues/0-elements-4 6 4 -33.33% BenchmarkDictIterValues/1-elements-4 6 4 -33.33% BenchmarkDictIterValues/2-elements-4 6 4 -33.33% BenchmarkDictIterValues/3-elements-4 6 4 -33.33% BenchmarkDictIterValues/4-elements-4 6 4 -33.33% BenchmarkDictIterValues/5-elements-4 6 4 -33.33% BenchmarkDictIterValues/6-elements-4 6 4 -33.33% BenchmarkDictIterValues/7-elements-4 6 4 -33.33% BenchmarkDictIterValues/8-elements-4 6 4 -33.33% BenchmarkIntNew/interned-4 0 0 +0.00% BenchmarkIntNew/not_interned-4 1 1 +0.00% BenchmarkListContains/false-3-4 7 5 -28.57% BenchmarkListContains/false-10-4 7 5 -28.57% BenchmarkListContains/true-3.1-4 2 2 +0.00% BenchmarkListContains/true-3.3-4 2 2 +0.00% BenchmarkListContains/true-10.10-4 2 2 +0.00% BenchmarkNewStr-4 1 1 +0.00% BenchmarkTupleContains/false-3-4 8 6 -25.00% BenchmarkTupleContains/false-10-4 8 6 -25.00% BenchmarkTupleContains/true-3.1-4 3 3 +0.00% BenchmarkTupleContains/true-3.3-4 3 3 +0.00% BenchmarkTupleContains/true-10.10-4 3 3 +0.00% benchmark old bytes new bytes delta BenchmarkEscapeRune/low_values-4 4 4 +0.00% BenchmarkEscapeRune/mid_values-4 8 8 +0.00% BenchmarkEscapeRune/high_values-4 16 16 +0.00% BenchmarkGetAttr-4 0 0 +0.00% BenchmarkDictSetItem/3-elements-4 272 192 -29.41% BenchmarkDictSetItem/5-elements-4 336 416 +23.81% BenchmarkDictSetItem/8-elements-4 736 416 -43.48% BenchmarkDictSetItem/12-elements-4 864 1472 +70.37% BenchmarkDictSetItem/16-elements-4 992 1472 +48.39% BenchmarkDictSetItem/24-elements-4 2320 1472 -36.55% BenchmarkDictSetItem/32-elements-4 2576 1472 -42.86% BenchmarkDictGetItem-4 32 32 +0.00% BenchmarkDictGetItemBig-4 32 32 +0.00% BenchmarkDictIterItems/0-elements-4 320 208 -35.00% BenchmarkDictIterItems/1-elements-4 384 272 -29.17% BenchmarkDictIterItems/2-elements-4 448 336 -25.00% BenchmarkDictIterItems/3-elements-4 512 400 -21.88% BenchmarkDictIterItems/4-elements-4 576 464 -19.44% BenchmarkDictIterItems/5-elements-4 640 528 -17.50% BenchmarkDictIterItems/6-elements-4 704 592 -15.91% BenchmarkDictIterItems/7-elements-4 768 656 -14.58% BenchmarkDictIterItems/8-elements-4 832 720 -13.46% BenchmarkDictIterKeys/0-elements-4 320 208 -35.00% BenchmarkDictIterKeys/1-elements-4 320 208 -35.00% BenchmarkDictIterKeys/2-elements-4 320 208 -35.00% BenchmarkDictIterKeys/3-elements-4 320 208 -35.00% BenchmarkDictIterKeys/4-elements-4 320 208 -35.00% BenchmarkDictIterKeys/5-elements-4 320 208 -35.00% BenchmarkDictIterKeys/6-elements-4 320 208 -35.00% BenchmarkDictIterKeys/7-elements-4 320 208 -35.00% BenchmarkDictIterKeys/8-elements-4 320 208 -35.00% BenchmarkDictIterKeys/9-elements-4 320 208 -35.00% BenchmarkDictIterValues/0-elements-4 320 208 -35.00% BenchmarkDictIterValues/1-elements-4 320 208 -35.00% BenchmarkDictIterValues/2-elements-4 320 208 -35.00% BenchmarkDictIterValues/3-elements-4 320 208 -35.00% BenchmarkDictIterValues/4-elements-4 320 208 -35.00% BenchmarkDictIterValues/5-elements-4 320 208 -35.00% BenchmarkDictIterValues/6-elements-4 320 208 -35.00% BenchmarkDictIterValues/7-elements-4 320 208 -35.00% BenchmarkDictIterValues/8-elements-4 320 208 -35.00% BenchmarkIntNew/interned-4 0 0 +0.00% BenchmarkIntNew/not_interned-4 32 32 +0.00% BenchmarkListContains/false-3-4 336 224 -33.33% BenchmarkListContains/false-10-4 336 224 -33.33% BenchmarkListContains/true-3.1-4 80 80 +0.00% BenchmarkListContains/true-3.3-4 80 80 +0.00% BenchmarkListContains/true-10.10-4 80 80 +0.00% BenchmarkNewStr-4 48 48 +0.00% BenchmarkTupleContains/false-3-4 400 288 -28.00% BenchmarkTupleContains/false-10-4 400 288 -28.00% BenchmarkTupleContains/true-3.1-4 144 144 +0.00% BenchmarkTupleContains/true-3.3-4 144 144 +0.00% BenchmarkTupleContains/true-10.10-4 144 144 +0.00%
1 parent 37c3e44 commit 35a578a

File tree

3 files changed

+324
-210
lines changed

3 files changed

+324
-210
lines changed

0 commit comments

Comments
 (0)