Skip to content

Commit 6009efe

Browse files
committed
dict.go: implement ordered dictionary.
benchmark old ns/op new ns/op delta BenchmarkEscapeRune/low_values-4 26.4 26.2 -0.76% BenchmarkEscapeRune/mid_values-4 33.5 33.5 +0.00% BenchmarkEscapeRune/high_values-4 47.6 46.1 -3.15% BenchmarkGetAttr-4 129 127 -1.55% BenchmarkDictSetItem/3-elements-4 926 657 -29.05% BenchmarkDictSetItem/5-elements-4 1302 1256 -3.53% BenchmarkDictSetItem/8-elements-4 2357 1630 -30.84% BenchmarkDictSetItem/12-elements-4 3149 2880 -8.54% BenchmarkDictSetItem/16-elements-4 3930 3312 -15.73% BenchmarkDictSetItem/24-elements-4 7040 5660 -19.60% BenchmarkDictSetItem/32-elements-4 8418 6420 -23.73% BenchmarkDictGetItem-4 181 177 -2.21% BenchmarkDictGetItemBig-4 3164 3139 -0.79% BenchmarkDictIterItems/0-elements-4 921 618 -32.90% BenchmarkDictIterItems/1-elements-4 1020 739 -27.55% BenchmarkDictIterItems/2-elements-4 1151 859 -25.37% BenchmarkDictIterItems/3-elements-4 1296 1020 -21.30% BenchmarkDictIterItems/4-elements-4 1427 1138 -20.25% BenchmarkDictIterItems/5-elements-4 1592 1265 -20.54% BenchmarkDictIterItems/6-elements-4 1874 1386 -26.04% BenchmarkDictIterItems/7-elements-4 1986 1486 -25.18% BenchmarkDictIterItems/8-elements-4 2118 1605 -24.22% BenchmarkDictIterKeys/0-elements-4 914 611 -33.15% BenchmarkDictIterKeys/1-elements-4 1010 701 -30.59% BenchmarkDictIterKeys/2-elements-4 1079 794 -26.41% BenchmarkDictIterKeys/3-elements-4 1205 892 -25.98% BenchmarkDictIterKeys/4-elements-4 1305 984 -24.60% BenchmarkDictIterKeys/5-elements-4 1375 1080 -21.45% BenchmarkDictIterKeys/6-elements-4 1700 1173 -31.00% BenchmarkDictIterKeys/7-elements-4 1787 1284 -28.15% BenchmarkDictIterKeys/8-elements-4 1867 1372 -26.51% BenchmarkDictIterKeys/9-elements-4 1955 1494 -23.58% BenchmarkDictIterValues/0-elements-4 923 617 -33.15% BenchmarkDictIterValues/1-elements-4 929 646 -30.46% BenchmarkDictIterValues/2-elements-4 950 659 -30.63% BenchmarkDictIterValues/3-elements-4 981 693 -29.36% BenchmarkDictIterValues/4-elements-4 1003 716 -28.61% BenchmarkDictIterValues/5-elements-4 1021 744 -27.13% BenchmarkDictIterValues/6-elements-4 1271 776 -38.95% BenchmarkDictIterValues/7-elements-4 1288 804 -37.58% BenchmarkDictIterValues/8-elements-4 1307 825 -36.88% BenchmarkIntNew/interned-4 0.96 0.96 +0.00% BenchmarkIntNew/not_interned-4 70.2 68.5 -2.42% BenchmarkListContains/false-3-4 1261 1032 -18.16% BenchmarkListContains/false-10-4 2263 2031 -10.25% BenchmarkListContains/true-3.1-4 293 291 -0.68% BenchmarkListContains/true-3.3-4 556 552 -0.72% BenchmarkListContains/true-10.10-4 1457 1449 -0.55% BenchmarkNewStr-4 114 115 +0.88% BenchmarkTupleContains/false-3-4 2037 1789 -12.17% BenchmarkTupleContains/false-10-4 4346 4127 -5.04% BenchmarkTupleContains/true-3.1-4 611 608 -0.49% BenchmarkTupleContains/true-3.3-4 1298 1301 +0.23% BenchmarkTupleContains/true-10.10-4 3643 3660 +0.47% 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 11 -64.52% BenchmarkDictSetItem/32-elements-4 39 11 -71.79% 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 960 +11.11% BenchmarkDictSetItem/16-elements-4 992 960 -3.23% BenchmarkDictSetItem/24-elements-4 2320 2016 -13.10% BenchmarkDictSetItem/32-elements-4 2576 2016 -21.74% 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 6009efe

File tree

3 files changed

+322
-210
lines changed

3 files changed

+322
-210
lines changed

0 commit comments

Comments
 (0)