-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the first 31 bytes to the hash of long strings #1581
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/llvm)
Benchmark suite | Current: e9b7de0 | Previous: 0b28a37 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.5233282419440437 ns/iter |
2.4910785893845415 ns/iter |
1.01 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.4885180968588023 ns/iter |
2.48607795950712 ns/iter |
1.00 |
Regex_Period_Asterisk |
2.48705779529052 ns/iter |
2.4862670526578854 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
2.4981381838400027 ns/iter |
2.485916213443055 ns/iter |
1.00 |
Regex_Period_Plus |
2.6444819053960837 ns/iter |
2.797628036102881 ns/iter |
0.95 |
Regex_Period |
2.5540249858449817 ns/iter |
2.5921452362218123 ns/iter |
0.99 |
Regex_Caret_Period_Plus_Dollar |
2.4891388176003213 ns/iter |
2.4932322079235614 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.4896995561869018 ns/iter |
2.50495197607764 ns/iter |
0.99 |
Regex_Caret_Period_Asterisk_Dollar |
2.804597299584947 ns/iter |
2.4895826186042216 ns/iter |
1.13 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.673389708441055 ns/iter |
2.4876284924176426 ns/iter |
1.07 |
Regex_Caret_X_Hyphen |
13.047621188638226 ns/iter |
12.430354946836882 ns/iter |
1.05 |
Regex_Period_Md_Dollar |
80.50387524190218 ns/iter |
77.94855197204875 ns/iter |
1.03 |
Regex_Caret_Slash_Period_Asterisk |
6.213178274982546 ns/iter |
5.907134045555883 ns/iter |
1.05 |
Regex_Caret_Period_Range_Dollar |
4.0383079611906405 ns/iter |
2.7985861993410044 ns/iter |
1.44 |
Regex_Nested_Backtrack |
482.85801044076993 ns/iter |
478.5051068073427 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
379.37522011838917 ns/iter |
445.58510813576174 ns/iter |
0.85 |
JSON_Parse_1 |
30155.769436189898 ns/iter |
30234.362335749895 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
56.05908027250021 ns/iter |
56.09318835114465 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
150.39043980409355 ns/iter |
144.59651741756798 ns/iter |
1.04 |
JSON_String_Equal/10 |
5.612054952589856 ns/iter |
5.59878452518341 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.228808751046261 ns/iter |
6.223085107698479 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9338000786473448 ns/iter |
0.9338403213472747 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.600803942156496 ns/iter |
10.256245878042291 ns/iter |
1.42 |
JSON_String_Fast_Hash/10 |
2.175493319096277 ns/iter |
2.1777712277251395 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.176857208848693 ns/iter |
2.1760528164064423 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.6465982056691626 ns/iter |
2.181056726642779 ns/iter |
1.21 |
JSON_String_Key_Hash/100 |
9.006640076805082 ns/iter |
2.1777565982178424 ns/iter |
4.14 |
JSON_Object_Defines_Miss_Same_Length |
3.731417907207485 ns/iter |
3.7366882240936183 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.7347343333141954 ns/iter |
3.860911583027837 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Too_Large |
3.7437524924582766 ns/iter |
3.7352029552533907 ns/iter |
1.00 |
Pointer_Object_Traverse |
42.669202781111466 ns/iter |
45.07719834460821 ns/iter |
0.95 |
Pointer_Object_Try_Traverse |
53.33936692005604 ns/iter |
52.29117143279369 ns/iter |
1.02 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
289.4057931211268 ns/iter |
345.2985636273405 ns/iter |
0.84 |
Schema_Frame_OMC_Instances |
219736706.00001088 ns/iter |
228248956.66667545 ns/iter |
0.96 |
Schema_Frame_OMC_References |
144369359.79999816 ns/iter |
147591740.4000029 ns/iter |
0.98 |
Schema_Frame_OMC_Locations |
140743948.9999888 ns/iter |
144102830.39999285 ns/iter |
0.98 |
Schema_Bundle_Meta_2020_12 |
6808712.59222933 ns/iter |
6913506.594063358 ns/iter |
0.98 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/llvm)
Benchmark suite | Current: e9b7de0 | Previous: 0b28a37 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.6802609044060528 ns/iter |
1.971468814589948 ns/iter |
0.85 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.570430473414605 ns/iter |
1.9810383069129447 ns/iter |
0.79 |
Regex_Period_Asterisk |
1.5818243229670417 ns/iter |
1.9030525153890745 ns/iter |
0.83 |
Regex_Group_Period_Asterisk_Group |
1.620905522925156 ns/iter |
1.7754747876742962 ns/iter |
0.91 |
Regex_Period_Plus |
1.9026030921283879 ns/iter |
2.1150481861423245 ns/iter |
0.90 |
Regex_Period |
1.9078573316442455 ns/iter |
2.0914982812789304 ns/iter |
0.91 |
Regex_Caret_Period_Plus_Dollar |
1.9298137873464398 ns/iter |
2.1996536937894144 ns/iter |
0.88 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.9087135179576717 ns/iter |
2.34280539841617 ns/iter |
0.81 |
Regex_Caret_Period_Asterisk_Dollar |
1.5901313525648024 ns/iter |
2.127459002801557 ns/iter |
0.75 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.6071150551336124 ns/iter |
1.8517843652812784 ns/iter |
0.87 |
Regex_Caret_X_Hyphen |
6.526762006653691 ns/iter |
8.138388492760289 ns/iter |
0.80 |
Regex_Period_Md_Dollar |
72.76575455581576 ns/iter |
82.13083841385229 ns/iter |
0.89 |
Regex_Caret_Slash_Period_Asterisk |
7.093988494350542 ns/iter |
5.703814949018895 ns/iter |
1.24 |
Regex_Caret_Period_Range_Dollar |
2.0885723688979345 ns/iter |
2.468873671948882 ns/iter |
0.85 |
Regex_Nested_Backtrack |
751.8536392509843 ns/iter |
826.2100105965349 ns/iter |
0.91 |
JSON_Array_Of_Objects_Unique |
352.7608588411329 ns/iter |
396.6354510857502 ns/iter |
0.89 |
JSON_Parse_1 |
21839.104091998972 ns/iter |
25373.7739427536 ns/iter |
0.86 |
JSON_Fast_Hash_Helm_Chart_Lock |
51.08242500000415 ns/iter |
54.897209123168494 ns/iter |
0.93 |
JSON_Equality_Helm_Chart_Lock |
140.91325203383576 ns/iter |
137.09184845005993 ns/iter |
1.03 |
JSON_String_Equal/10 |
7.674078769226882 ns/iter |
9.136887985854056 ns/iter |
0.84 |
JSON_String_Equal/100 |
6.510334563960384 ns/iter |
8.93701435944688 ns/iter |
0.73 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.3445794855628239 ns/iter |
0.3596164879326734 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.360179323907158 ns/iter |
3.112259425550567 ns/iter |
1.08 |
JSON_String_Fast_Hash/10 |
1.6402432595742584 ns/iter |
1.6933534129457255 ns/iter |
0.97 |
JSON_String_Fast_Hash/100 |
2.220010371228592 ns/iter |
2.0199947223777177 ns/iter |
1.10 |
JSON_String_Key_Hash/10 |
1.5946389702495034 ns/iter |
1.3494421213156904 ns/iter |
1.18 |
JSON_String_Key_Hash/100 |
2.8406760329914174 ns/iter |
1.3554899892753218 ns/iter |
2.10 |
JSON_Object_Defines_Miss_Same_Length |
2.761631813924041 ns/iter |
2.3554787763793184 ns/iter |
1.17 |
JSON_Object_Defines_Miss_Too_Small |
3.020139244250804 ns/iter |
2.356919465694408 ns/iter |
1.28 |
JSON_Object_Defines_Miss_Too_Large |
2.8643525372923833 ns/iter |
2.3505822721512897 ns/iter |
1.22 |
Pointer_Object_Traverse |
16.853094519814125 ns/iter |
16.47863723282853 ns/iter |
1.02 |
Pointer_Object_Try_Traverse |
22.191236371772767 ns/iter |
26.000532072665646 ns/iter |
0.85 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
203.9546652303022 ns/iter |
182.21521769842738 ns/iter |
1.12 |
Schema_Frame_OMC_Instances |
181989468.75000387 ns/iter |
182654937.49998996 ns/iter |
1.00 |
Schema_Frame_OMC_References |
110309166.6666766 ns/iter |
111103340.33334841 ns/iter |
0.99 |
Schema_Frame_OMC_Locations |
107653833.33333981 ns/iter |
109743047.71428122 ns/iter |
0.98 |
Schema_Bundle_Meta_2020_12 |
5345222.546105828 ns/iter |
4994945.937503479 ns/iter |
1.07 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (windows/msvc)
Benchmark suite | Current: e9b7de0 | Previous: 0b28a37 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
6.629631696427449 ns/iter |
6.801843749999798 ns/iter |
0.97 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
6.841716517856764 ns/iter |
6.551072544644296 ns/iter |
1.04 |
Regex_Period_Asterisk |
6.738819196428888 ns/iter |
6.781790178571613 ns/iter |
0.99 |
Regex_Group_Period_Asterisk_Group |
6.5189776785713 ns/iter |
6.630018973213327 ns/iter |
0.98 |
Regex_Period_Plus |
7.096386607142132 ns/iter |
7.004220982143039 ns/iter |
1.01 |
Regex_Period |
7.131385044643375 ns/iter |
7.025774553570991 ns/iter |
1.02 |
Regex_Caret_Period_Plus_Dollar |
6.958386607143398 ns/iter |
7.300929878121332 ns/iter |
0.95 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
6.983647321428674 ns/iter |
6.985732142855536 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
6.5905133928583535 ns/iter |
6.60431875000102 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
6.781005580356642 ns/iter |
6.756453571426846 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
11.969312499999774 ns/iter |
11.827921874999703 ns/iter |
1.01 |
Regex_Period_Md_Dollar |
158.64817357020775 ns/iter |
149.7449665292567 ns/iter |
1.06 |
Regex_Caret_Slash_Period_Asterisk |
10.047473437499121 ns/iter |
10.087596875003157 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
7.2061348214284795 ns/iter |
7.574820312500817 ns/iter |
0.95 |
Regex_Nested_Backtrack |
600.4646000000093 ns/iter |
601.6718750000142 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
447.8035095168997 ns/iter |
444.8828607456375 ns/iter |
1.01 |
JSON_Parse_1 |
79983.13914556357 ns/iter |
97265.0781250195 ns/iter |
0.82 |
JSON_Fast_Hash_Helm_Chart_Lock |
66.83446428570961 ns/iter |
62.85901785712359 ns/iter |
1.06 |
JSON_Equality_Helm_Chart_Lock |
187.35454074308592 ns/iter |
196.9501782990953 ns/iter |
0.95 |
JSON_String_Equal/10 |
9.732101742266572 ns/iter |
9.640528081960102 ns/iter |
1.01 |
JSON_String_Equal/100 |
9.926594152112882 ns/iter |
9.968141473356747 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.1673906250001096 ns/iter |
2.1656012499995825 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
13.949934374998918 ns/iter |
14.765575892857287 ns/iter |
0.94 |
JSON_String_Fast_Hash/10 |
3.7099869576604783 ns/iter |
3.7146374933667157 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
3.7172126719330736 ns/iter |
3.717764145977028 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
5.924887499999849 ns/iter |
7.914186125383125 ns/iter |
0.75 |
JSON_String_Key_Hash/100 |
19.573467672860914 ns/iter |
3.713363564797977 ns/iter |
5.27 |
JSON_Object_Defines_Miss_Same_Length |
4.0304573286255625 ns/iter |
4.026564292904521 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.4145006303349965 ns/iter |
3.4056191457041822 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.722427293291128 ns/iter |
3.7235582977531845 ns/iter |
1.00 |
Pointer_Object_Traverse |
50.15169999999216 ns/iter |
49.78550999999243 ns/iter |
1.01 |
Pointer_Object_Try_Traverse |
74.40334821428505 ns/iter |
74.35649107143101 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
185.97949874817763 ns/iter |
184.0254271451237 ns/iter |
1.01 |
Schema_Frame_OMC_Instances |
492983550.0000195 ns/iter |
498310449.9999626 ns/iter |
0.99 |
Schema_Frame_OMC_References |
356446900.0000372 ns/iter |
356110000.0000579 ns/iter |
1.00 |
Schema_Frame_OMC_Locations |
348077149.99999464 ns/iter |
349000300.000057 ns/iter |
1.00 |
Schema_Bundle_Meta_2020_12 |
16519014.634149598 ns/iter |
16785731.707342368 ns/iter |
0.98 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Michael Mior <[email protected]>
d04dbbf
to
e9b7de0
Compare
Note that hashing long strings is significantly slower. This is expected, but I don't think it's a problem. We're sacrificing a bit more time to hash the strings to avoid collisions in the future. Since collisions always mean a string comparison of longer strings, I think this will be a significant win overall. We may want another microbenchmark to capture this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/gcc)
Benchmark suite | Current: e9b7de0 | Previous: 0b28a37 | Ratio |
---|---|---|---|
Schema_Frame_OMC_Instances |
218018857.6666827 ns/iter |
217270288.33333862 ns/iter |
1.00 |
Schema_Frame_OMC_References |
145322375.00000066 ns/iter |
142297907.19996345 ns/iter |
1.02 |
Schema_Frame_OMC_Locations |
140721325.9999935 ns/iter |
138847643.400004 ns/iter |
1.01 |
Schema_Bundle_Meta_2020_12 |
6959065.68999817 ns/iter |
6950113.000002602 ns/iter |
1.00 |
Pointer_Object_Traverse |
51.05869189999339 ns/iter |
47.033963627059634 ns/iter |
1.09 |
Pointer_Object_Try_Traverse |
23.00231598285041 ns/iter |
23.665808391184765 ns/iter |
0.97 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
162.38567316560997 ns/iter |
160.40902295579681 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
379.83700041329496 ns/iter |
418.21238949120243 ns/iter |
0.91 |
JSON_Parse_1 |
33241.52224343277 ns/iter |
33333.65759399773 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
63.176550307213574 ns/iter |
68.99515777824124 ns/iter |
0.92 |
JSON_Equality_Helm_Chart_Lock |
154.79754387086635 ns/iter |
146.03394645427124 ns/iter |
1.06 |
JSON_String_Equal/10 |
6.343034774026637 ns/iter |
6.370570242993082 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.96671862722581 ns/iter |
6.888116965505517 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6253404471616595 ns/iter |
0.6260260465208398 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.798365432430707 ns/iter |
11.70870907184515 ns/iter |
2.20 |
JSON_String_Fast_Hash/10 |
0.9342739047880316 ns/iter |
0.9325681612871874 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
0.9349506775042222 ns/iter |
0.9343773437464205 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.2477170017138588 ns/iter |
1.2444289295954816 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
12.428112422532049 ns/iter |
0.9349503801644976 ns/iter |
13.29 |
JSON_Object_Defines_Miss_Same_Length |
2.798595110741571 ns/iter |
2.4907903126502777 ns/iter |
1.12 |
JSON_Object_Defines_Miss_Too_Small |
2.7964974952163897 ns/iter |
2.5036917727204835 ns/iter |
1.12 |
JSON_Object_Defines_Miss_Too_Large |
2.7972156813425904 ns/iter |
2.8018532421117706 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
3.1139098965282335 ns/iter |
3.114292645735623 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.108506569661275 ns/iter |
2.8010424635481854 ns/iter |
1.11 |
Regex_Period_Asterisk |
2.8025741934992205 ns/iter |
2.8017468996157557 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
2.8006208330536895 ns/iter |
2.7978297395751763 ns/iter |
1.00 |
Regex_Period_Plus |
3.114798067699511 ns/iter |
3.1166811815614546 ns/iter |
1.00 |
Regex_Period |
3.1130706055271897 ns/iter |
3.1090840621181366 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
3.116355738196859 ns/iter |
3.1163956582886456 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.421436684120717 ns/iter |
3.4183233616475555 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
4.042354681472904 ns/iter |
3.106534319392403 ns/iter |
1.30 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
4.5374145046367715 ns/iter |
3.107237938848794 ns/iter |
1.46 |
Regex_Caret_X_Hyphen |
13.680902454681064 ns/iter |
13.691540037160562 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
94.3532918242415 ns/iter |
89.04632832078678 ns/iter |
1.06 |
Regex_Caret_Slash_Period_Asterisk |
9.668832899762965 ns/iter |
8.702872309623526 ns/iter |
1.11 |
Regex_Caret_Period_Range_Dollar |
4.381202431253075 ns/iter |
3.5284094938454373 ns/iter |
1.24 |
Regex_Nested_Backtrack |
847.4524100096965 ns/iter |
821.3496328165464 ns/iter |
1.03 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/gcc)
Benchmark suite | Current: e9b7de0 | Previous: 0b28a37 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.0258614407378492 ns/iter |
2.0174201755549186 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.1504282606507856 ns/iter |
2.039836000301083 ns/iter |
1.05 |
Regex_Period_Asterisk |
2.332995432295689 ns/iter |
2.3725217817191564 ns/iter |
0.98 |
Regex_Group_Period_Asterisk_Group |
2.0444805300728444 ns/iter |
2.012895502797073 ns/iter |
1.02 |
Regex_Period_Plus |
1.706666424598411 ns/iter |
1.6929272298751545 ns/iter |
1.01 |
Regex_Period |
1.6925614648334848 ns/iter |
1.6988639358331692 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
1.697369275779185 ns/iter |
1.8308002716998528 ns/iter |
0.93 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.7337273937204367 ns/iter |
1.7141456203241394 ns/iter |
1.01 |
Regex_Caret_Period_Asterisk_Dollar |
2.025433251726799 ns/iter |
2.064772111697076 ns/iter |
0.98 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.0224826441718675 ns/iter |
2.014473499313502 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
6.388649486379174 ns/iter |
6.378212473081122 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
74.41796272171298 ns/iter |
76.5031822045315 ns/iter |
0.97 |
Regex_Caret_Slash_Period_Asterisk |
4.727659937424794 ns/iter |
4.506638906967723 ns/iter |
1.05 |
Regex_Caret_Period_Range_Dollar |
2.056094748116322 ns/iter |
2.095368903844674 ns/iter |
0.98 |
Regex_Nested_Backtrack |
850.6357505666643 ns/iter |
910.6886823568311 ns/iter |
0.93 |
JSON_Array_Of_Objects_Unique |
205.05484926816038 ns/iter |
239.6572223237621 ns/iter |
0.86 |
JSON_Parse_1 |
23372.507722116672 ns/iter |
24755.050659718545 ns/iter |
0.94 |
JSON_Fast_Hash_Helm_Chart_Lock |
24.89950726510181 ns/iter |
25.145402685685355 ns/iter |
0.99 |
JSON_Equality_Helm_Chart_Lock |
124.38195161110708 ns/iter |
137.41790311229246 ns/iter |
0.91 |
JSON_String_Equal/10 |
5.841370681715222 ns/iter |
5.9626029548846535 ns/iter |
0.98 |
JSON_String_Equal/100 |
5.281034937364712 ns/iter |
5.526829970671494 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7826440687245055 ns/iter |
0.8154362658001352 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.6943804841199177 ns/iter |
3.7529985880388947 ns/iter |
0.98 |
JSON_String_Fast_Hash/10 |
1.9631479373444969 ns/iter |
2.017165036434586 ns/iter |
0.97 |
JSON_String_Fast_Hash/100 |
1.9934926678186193 ns/iter |
2.0288087672718533 ns/iter |
0.98 |
JSON_String_Key_Hash/10 |
1.4467364766134099 ns/iter |
1.4973768876085525 ns/iter |
0.97 |
JSON_String_Key_Hash/100 |
2.354123216347798 ns/iter |
2.0566548370704245 ns/iter |
1.14 |
JSON_Object_Defines_Miss_Same_Length |
1.9017333871554978 ns/iter |
1.9654819239370527 ns/iter |
0.97 |
JSON_Object_Defines_Miss_Too_Small |
1.8624833145553212 ns/iter |
2.1618056149784173 ns/iter |
0.86 |
JSON_Object_Defines_Miss_Too_Large |
1.8837944705038694 ns/iter |
1.9679741197941365 ns/iter |
0.96 |
Pointer_Object_Traverse |
55.09190808452208 ns/iter |
56.54213354222707 ns/iter |
0.97 |
Pointer_Object_Try_Traverse |
39.64399314143694 ns/iter |
38.987513829760296 ns/iter |
1.02 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
167.52919392418704 ns/iter |
162.00948046560754 ns/iter |
1.03 |
Schema_Frame_OMC_Instances |
166051149.36828613 ns/iter |
180894970.89385986 ns/iter |
0.92 |
Schema_Frame_OMC_References |
100642102.10527693 ns/iter |
119090636.57124837 ns/iter |
0.85 |
Schema_Frame_OMC_Locations |
100752149.30943081 ns/iter |
114684859.91160075 ns/iter |
0.88 |
Schema_Bundle_Meta_2020_12 |
5040670.434633891 ns/iter |
6257280.707359314 ns/iter |
0.81 |
This comment was automatically generated by workflow using github-action-benchmark.
Let me open a Blaze PR with this so we can see the GoogleBenchmark impact and also on the final benchmark |
Making this a draft for now so we don't accidentally merge! |
This adds the first 31 bytes of the string into the hash value when we are dealing with longer strings.
This should serve to reduce hash collisions and consequently, also eliminate some string comparisons.