Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Jan 23, 2026

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

@augmentcode
Copy link

augmentcode bot commented Jan 23, 2026

🤖 Augment PR Summary

Summary: This PR refactors the JSON/YAML parse callback API to expose location context (root/property/index) without constructing temporary JSON values.

Changes:

  • Introduces JSON::ParseContext to describe whether a callback is for the root, an object property, or an array index.
  • Redefines JSON::ParseCallback to pass (context, index, property) instead of a synthesized JSON value for “where” metadata.
  • Updates the JSON parser callback macros to stop allocating/validating placeholder JSON values during parsing.
  • Updates JSON Pointer position tracking to use the new context/index/property inputs.
  • Updates YAML parsing callback plumbing (including anchor/alias replay) to record/replay the new callback tuple shape.
  • Reworks JSON and YAML callback unit tests to validate the new callback signature and semantics.

Technical Notes: Post-phase callbacks now carry empty location metadata (Root/0/""), with path context expected to be tracked via Pre-phase events.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti force-pushed the simpler-json-parse-callbacks branch from c4fd2d1 to 275fa9b Compare January 23, 2026 17:51
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: dcb0e63 Previous: cfe6cd8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.0212862165998966 ns/iter 3.110445485074223 ns/iter 0.65
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0163930493691407 ns/iter 3.108545511241515 ns/iter 0.65
Regex_Period_Asterisk 2.0165551043270273 ns/iter 3.1077705162366347 ns/iter 0.65
Regex_Group_Period_Asterisk_Group 2.018108493882687 ns/iter 3.108613962222955 ns/iter 0.65
Regex_Period_Plus 2.3051498159110273 ns/iter 2.82462342515554 ns/iter 0.82
Regex_Period 2.3058398984127244 ns/iter 3.0529551604487155 ns/iter 0.76
Regex_Caret_Period_Plus_Dollar 2.305150195068868 ns/iter 2.879255655980725 ns/iter 0.80
Regex_Caret_Group_Period_Plus_Group_Dollar 2.3058791914712065 ns/iter 2.8255932725419832 ns/iter 0.82
Regex_Caret_Period_Asterisk_Dollar 2.023770137959667 ns/iter 3.419313907579706 ns/iter 0.59
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.0156914697107466 ns/iter 3.420459863015211 ns/iter 0.59
Regex_Caret_X_Hyphen 8.647386197341325 ns/iter 10.61562581522062 ns/iter 0.81
Regex_Period_Md_Dollar 25.166433842173365 ns/iter 27.60243473726318 ns/iter 0.91
Regex_Caret_Slash_Period_Asterisk 8.889275029845413 ns/iter 6.526989608078195 ns/iter 1.36
Regex_Caret_Period_Range_Dollar 2.498272563992758 ns/iter 3.107356006644032 ns/iter 0.80
Regex_Nested_Backtrack 43.82374484376192 ns/iter 48.921112383095085 ns/iter 0.90
JSON_Array_Of_Objects_Unique 344.5424477360249 ns/iter 440.0915489666565 ns/iter 0.78
JSON_Parse_1 27398.15084214427 ns/iter 29406.96046754369 ns/iter 0.93
JSON_Parse_Real 36183.99125892215 ns/iter 39107.11510710845 ns/iter 0.93
JSON_Parse_Decimal 127213.24478694682 ns/iter 132164.74797208846 ns/iter 0.96
JSON_Parse_Schema_ISO_Language 20459675.999999862 ns/iter
JSON_Fast_Hash_Helm_Chart_Lock 46.37697712921033 ns/iter 62.44644343412631 ns/iter 0.74
JSON_Equality_Helm_Chart_Lock 140.06356991185476 ns/iter 168.42415228705295 ns/iter 0.83
JSON_String_Equal/10 5.183063846072947 ns/iter 7.159997449705055 ns/iter 0.72
JSON_String_Equal/100 6.335048987677472 ns/iter 7.78641027210648 ns/iter 0.81
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6909324113440498 ns/iter 0.9380016238779324 ns/iter 0.74
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 9.516499294861736 ns/iter 10.260554654649795 ns/iter 0.93
JSON_String_Fast_Hash/10 2.017076869883836 ns/iter 2.4880979256789146 ns/iter 0.81
JSON_String_Fast_Hash/100 2.0166931138790662 ns/iter 2.487573558042802 ns/iter 0.81
JSON_String_Key_Hash/10 2.0173114857898633 ns/iter 2.490539328973378 ns/iter 0.81
JSON_String_Key_Hash/100 6.623721041413431 ns/iter 6.533564178665196 ns/iter 1.01
JSON_Object_Defines_Miss_Same_Length 3.4094825615785473 ns/iter 3.7349227023753606 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Small 3.709491029766599 ns/iter 3.734885044239481 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 3.4060654828041415 ns/iter 3.73544601831386 ns/iter 0.91
Pointer_Object_Traverse 36.40033130476624 ns/iter 44.23093775475135 ns/iter 0.82
Pointer_Object_Try_Traverse 45.826984277254496 ns/iter 53.560782007799546 ns/iter 0.86
Pointer_Push_Back_Pointer_To_Weak_Pointer 261.8945198244511 ns/iter 289.4666932300337 ns/iter 0.90
Pointer_Walker_Schema_ISO_Language 2999525.155843845 ns/iter 3173396.64220182 ns/iter 0.95
Schema_Frame_WoT_References 5240885.716417908 ns/iter 5981038.30769175 ns/iter 0.88
Schema_Frame_OMC_References 24082405.931031987 ns/iter 28193130.360000394 ns/iter 0.85
Schema_Frame_OMC_Locations 22574164.129031077 ns/iter 26693512.499998808 ns/iter 0.85
Schema_Frame_ISO_Language_Locations 116738619.8000031 ns/iter 127274037.79999804 ns/iter 0.92
Schema_Iterator_ISO_Language 2216574.5660377415 ns/iter 2361047.8209459754 ns/iter 0.94
Schema_Frame_ISO_Language_Locations_To_JSON 129778936.39999822 ns/iter 130555112.00000183 ns/iter 0.99
Schema_Tracker_ISO_Language 42608847.12500257 ns/iter 45085359.66666234 ns/iter 0.95
Schema_Tracker_ISO_Language_To_JSON 23907084.103449237 ns/iter 21443230.312499397 ns/iter 1.11
Schema_Format_ISO_Language_To_JSON 124232863.49998838 ns/iter 131652135.80002728 ns/iter 0.94
Schema_Bundle_Meta_2020_12 2049601.1286571322 ns/iter 2191207.1406273274 ns/iter 0.94
Schema_Frame_Many_Resources_References 231169814.00001654 ns/iter 263414718.33332738 ns/iter 0.88
Alterschema_Check_Readibility_ISO_Language_Set_3 213795721.66665637 ns/iter 234579555.3333498 ns/iter 0.91
Alterschema_Check_Readibility_OMC 29020486.43478417 ns/iter 34149458.52380567 ns/iter 0.85
EditorSchema_ForEditor_EmbeddedResources 12936094.444438806 ns/iter 14681111.875001797 ns/iter 0.88
URITemplateRouter_Create 12666.126075435735 ns/iter 16462.582189212313 ns/iter 0.77
URITemplateRouter_Match 150.98261648384303 ns/iter 172.25354116652696 ns/iter 0.88
URITemplateRouterView_Restore 3487.4723124439442 ns/iter 8110.463670862228 ns/iter 0.43
URITemplateRouterView_Match 109.22063363130721 ns/iter 119.89604302391346 ns/iter 0.91

This comment was automatically generated by workflow using github-action-benchmark.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: dcb0e63 Previous: cfe6cd8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.1335647395251875 ns/iter 4.870366598445547 ns/iter 0.85
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.1106487481643 ns/iter 4.574729274481569 ns/iter 0.90
Regex_Period_Asterisk 4.457320000000209 ns/iter 4.409984029350437 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 4.1283801544059475 ns/iter 4.084736971580222 ns/iter 1.01
Regex_Period_Plus 4.142311069580469 ns/iter 4.4074356250000335 ns/iter 0.94
Regex_Period 4.097580275173169 ns/iter 4.403269999999537 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 3.795807850364692 ns/iter 4.0830460696056825 ns/iter 0.93
Regex_Caret_Group_Period_Plus_Group_Dollar 3.8010712432122413 ns/iter 3.7662878504171475 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 4.11889795378321 ns/iter 4.101043846608814 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.128353636549705 ns/iter 3.7808030289628554 ns/iter 1.09
Regex_Caret_X_Hyphen 7.972367187498719 ns/iter 7.559736607143058 ns/iter 1.05
Regex_Period_Md_Dollar 36.39501806063189 ns/iter 35.54018545607062 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 7.648588169644199 ns/iter 7.227875000000138 ns/iter 1.06
Regex_Caret_Period_Range_Dollar 4.161980690107004 ns/iter 4.109841480553515 ns/iter 1.01
Regex_Nested_Backtrack 108.56793265320958 ns/iter 106.15162500000608 ns/iter 1.02
JSON_Array_Of_Objects_Unique 542.9667857143272 ns/iter 496.3703999999325 ns/iter 1.09
JSON_Parse_1 75793.11607141141 ns/iter 71557.93749999719 ns/iter 1.06
JSON_Parse_Real 100962.48437498901 ns/iter 90451.88161242836 ns/iter 1.12
JSON_Parse_Decimal 342580.74948669097 ns/iter 335913.21218072536 ns/iter 1.02
JSON_Parse_Schema_ISO_Language 60124845.45453844 ns/iter
JSON_Fast_Hash_Helm_Chart_Lock 74.30979910714493 ns/iter 68.96378571428029 ns/iter 1.08
JSON_Equality_Helm_Chart_Lock 288.0795463428523 ns/iter 263.2123928571316 ns/iter 1.09
JSON_String_Equal/10 13.821050831159937 ns/iter 12.240001785715192 ns/iter 1.13
JSON_String_Equal/100 15.443895466770414 ns/iter 13.863007304180336 ns/iter 1.11
JSON_String_Equal_Small_By_Perfect_Hash/10 1.9842452696284705 ns/iter 2.202000624999556 ns/iter 0.90
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.840207531964731 ns/iter 12.847142857144231 ns/iter 1.00
JSON_String_Fast_Hash/10 3.776433035713416 ns/iter 3.760292671855909 ns/iter 1.00
JSON_String_Fast_Hash/100 3.986336778595868 ns/iter 3.8769101716481273 ns/iter 1.03
JSON_String_Key_Hash/10 3.942515350102486 ns/iter 3.8549544574017527 ns/iter 1.02
JSON_String_Key_Hash/100 16.85563136034138 ns/iter 13.754245920739434 ns/iter 1.23
JSON_Object_Defines_Miss_Same_Length 3.778489397321394 ns/iter 4.75920335883789 ns/iter 0.79
JSON_Object_Defines_Miss_Too_Small 4.711144041230234 ns/iter 3.7735141004044523 ns/iter 1.25
JSON_Object_Defines_Miss_Too_Large 3.9860399928817656 ns/iter 4.81762627339769 ns/iter 0.83
Pointer_Object_Traverse 56.514517857136426 ns/iter 49.34719642857235 ns/iter 1.15
Pointer_Object_Try_Traverse 75.52444196429673 ns/iter 70.09699107143774 ns/iter 1.08
Pointer_Push_Back_Pointer_To_Weak_Pointer 167.5585179169073 ns/iter 157.24595982144405 ns/iter 1.07
Pointer_Walker_Schema_ISO_Language 8943481.33333248 ns/iter 12530610.937499631 ns/iter 0.71
Schema_Frame_WoT_References 11393291.07143031 ns/iter 12232741.071431162 ns/iter 0.93
Schema_Frame_OMC_References 58617390.90908652 ns/iter 62964899.99999721 ns/iter 0.93
Schema_Frame_OMC_Locations 54436500.00000327 ns/iter 59393299.9999879 ns/iter 0.92
Schema_Frame_ISO_Language_Locations 243835333.33336043 ns/iter 277401200.00009936 ns/iter 0.88
Schema_Iterator_ISO_Language 4198212.650601226 ns/iter 4417040.259740984 ns/iter 0.95
Schema_Frame_ISO_Language_Locations_To_JSON 258027066.6666517 ns/iter 258890500.0000068 ns/iter 1.00
Schema_Tracker_ISO_Language 98523971.42857885 ns/iter 101904100.00003189 ns/iter 0.97
Schema_Tracker_ISO_Language_To_JSON 50792819.999992386 ns/iter 55202627.2727372 ns/iter 0.92
Schema_Format_ISO_Language_To_JSON 245004533.33325824 ns/iter 258928650.00002986 ns/iter 0.95
Schema_Bundle_Meta_2020_12 4154052.3255717787 ns/iter 4257955.42168615 ns/iter 0.98
Schema_Frame_Many_Resources_References 517046599.99995786 ns/iter 533336500.0001322 ns/iter 0.97
Alterschema_Check_Readibility_ISO_Language_Set_3 366069349.9999752 ns/iter 392486849.99995476 ns/iter 0.93
Alterschema_Check_Readibility_OMC 70519300.00001118 ns/iter 72018744.44442385 ns/iter 0.98
EditorSchema_ForEditor_EmbeddedResources 27846359.9999759 ns/iter 26879535.714280274 ns/iter 1.04
URITemplateRouter_Create 23642.19633438778 ns/iter 22274.800000005256 ns/iter 1.06
URITemplateRouter_Match 229.9444375000093 ns/iter 207.89741259382117 ns/iter 1.11
URITemplateRouterView_Restore 34584.084821430246 ns/iter 33638.2008928585 ns/iter 1.03
URITemplateRouterView_Match 151.89004009418068 ns/iter 142.8204110347986 ns/iter 1.06

This comment was automatically generated by workflow using github-action-benchmark.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: dcb0e63 Previous: cfe6cd8 Ratio
URITemplateRouter_Create 14446.81219062578 ns/iter 14788.983442628241 ns/iter 0.98
URITemplateRouter_Match 161.84358478755425 ns/iter 162.0654125785062 ns/iter 1.00
URITemplateRouterView_Restore 8328.504071670548 ns/iter 8232.22330142978 ns/iter 1.01
URITemplateRouterView_Match 141.6333064244648 ns/iter 114.61695946385026 ns/iter 1.24
EditorSchema_ForEditor_EmbeddedResources 15817335.613591736 ns/iter 15661208.933301574 ns/iter 1.01
Alterschema_Check_Readibility_ISO_Language_Set_3 244065108.66667 ns/iter 241020775.99998966 ns/iter 1.01
Alterschema_Check_Readibility_OMC 38941525.16666812 ns/iter 37296070.15788803 ns/iter 1.04
Schema_Frame_WoT_References 6538597.822429573 ns/iter 6497859.212962103 ns/iter 1.01
Schema_Frame_OMC_References 31731695.45454419 ns/iter 30742621.739136666 ns/iter 1.03
Schema_Frame_OMC_Locations 29998298.45833801 ns/iter 28697382.291672587 ns/iter 1.05
Schema_Frame_ISO_Language_Locations 134741041.79999813 ns/iter 133679108.80001545 ns/iter 1.01
Schema_Iterator_ISO_Language 2667263.722433423 ns/iter 2727685.128404494 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 321964481.5000038 ns/iter 298922724.3333517 ns/iter 1.08
Schema_Tracker_ISO_Language 51008964.700008616 ns/iter 49274216.0714345 ns/iter 1.04
Schema_Tracker_ISO_Language_To_JSON 37841661.947368264 ns/iter 34207707.190467946 ns/iter 1.11
Schema_Format_ISO_Language_To_JSON 144526198.99993807 ns/iter 141173876.19999135 ns/iter 1.02
Schema_Bundle_Meta_2020_12 2433626.2048620936 ns/iter 2405054.704470401 ns/iter 1.01
Schema_Frame_Many_Resources_References 299916596.00000274 ns/iter 282879491.5000117 ns/iter 1.06
Pointer_Object_Traverse 48.86795081688795 ns/iter 46.24573873198895 ns/iter 1.06
Pointer_Object_Try_Traverse 26.315157425606404 ns/iter 26.174300161519405 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 164.60843310260137 ns/iter 171.67007220068007 ns/iter 0.96
Pointer_Walker_Schema_ISO_Language 3457356.3163265283 ns/iter 3531561.1005021473 ns/iter 0.98
JSON_Array_Of_Objects_Unique 411.91301145940355 ns/iter 386.15184059656696 ns/iter 1.07
JSON_Parse_1 33144.32354195693 ns/iter 32876.19168130706 ns/iter 1.01
JSON_Parse_Real 42879.5226608671 ns/iter 43708.72399497718 ns/iter 0.98
JSON_Parse_Decimal 157321.79721394175 ns/iter 156358.22832177638 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 22829386.161286112 ns/iter
JSON_Fast_Hash_Helm_Chart_Lock 59.96732971376628 ns/iter 56.78096656100717 ns/iter 1.06
JSON_Equality_Helm_Chart_Lock 158.49776787867685 ns/iter 151.04378204453326 ns/iter 1.05
JSON_String_Equal/10 6.661102815340125 ns/iter 6.311843170094666 ns/iter 1.06
JSON_String_Equal/100 7.273795766261496 ns/iter 6.929191344413063 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9350958448405857 ns/iter 0.6241909730609488 ns/iter 1.50
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 19.64309545224527 ns/iter 19.61777809456706 ns/iter 1.00
JSON_String_Fast_Hash/10 1.9089962220867758 ns/iter 1.9090889301278067 ns/iter 1.00
JSON_String_Fast_Hash/100 1.908070937666365 ns/iter 1.9064086509295308 ns/iter 1.00
JSON_String_Key_Hash/10 1.2449739371995365 ns/iter 1.5592574816953908 ns/iter 0.80
JSON_String_Key_Hash/100 12.424720657830274 ns/iter 12.450485549895568 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.488229196929386 ns/iter 2.4879540903550432 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.8051959162839175 ns/iter 2.8072504335172774 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 2.490616300079612 ns/iter 2.487090244790218 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.4248525879132905 ns/iter 3.4240212466280715 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.421325502498874 ns/iter 3.4208347385643276 ns/iter 1.00
Regex_Period_Asterisk 3.418900548589052 ns/iter 3.424512402841537 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.419566450958466 ns/iter 3.429019838888722 ns/iter 1.00
Regex_Period_Plus 3.4265550193248346 ns/iter 3.4332523897614493 ns/iter 1.00
Regex_Period 3.4196031223856567 ns/iter 3.3064383246950206 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 3.418921216219628 ns/iter 3.108464749448014 ns/iter 1.10
Regex_Caret_Group_Period_Plus_Group_Dollar 3.4201009907446713 ns/iter 3.109417360246731 ns/iter 1.10
Regex_Caret_Period_Asterisk_Dollar 4.663342553342598 ns/iter 3.732517414138421 ns/iter 1.25
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.67539580329852 ns/iter 3.7356632389759574 ns/iter 1.25
Regex_Caret_X_Hyphen 13.688986617583913 ns/iter 13.13984029964744 ns/iter 1.04
Regex_Period_Md_Dollar 35.885986851243096 ns/iter 35.922601961471315 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 9.015172964589928 ns/iter 9.018454656327588 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.662419143330161 ns/iter 4.669244533598284 ns/iter 1.00
Regex_Nested_Backtrack 59.16570141613123 ns/iter 59.4680865894191 ns/iter 0.99

This comment was automatically generated by workflow using github-action-benchmark.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: dcb0e63 Previous: cfe6cd8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.892157709730467 ns/iter 2.3163458515569877 ns/iter 0.82
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.083920245989135 ns/iter 2.206716366778203 ns/iter 0.94
Regex_Period_Asterisk 1.9371741363025685 ns/iter 2.506278931528664 ns/iter 0.77
Regex_Group_Period_Asterisk_Group 1.8838190077286825 ns/iter 2.4169447216628694 ns/iter 0.78
Regex_Period_Plus 2.474811854919932 ns/iter 2.6341928570492406 ns/iter 0.94
Regex_Period 2.846198369454346 ns/iter 2.934988633005485 ns/iter 0.97
Regex_Caret_Period_Plus_Dollar 2.300461254852853 ns/iter 2.8094282309273164 ns/iter 0.82
Regex_Caret_Group_Period_Plus_Group_Dollar 2.675912677782745 ns/iter 2.7078415927555106 ns/iter 0.99
Regex_Caret_Period_Asterisk_Dollar 2.0130033984836544 ns/iter 2.1250809718116312 ns/iter 0.95
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.9536172828146812 ns/iter 2.364642634747227 ns/iter 0.83
Regex_Caret_X_Hyphen 6.9380120919780435 ns/iter 8.303636105483745 ns/iter 0.84
Regex_Period_Md_Dollar 25.737599377549074 ns/iter 27.810359449725034 ns/iter 0.93
Regex_Caret_Slash_Period_Asterisk 6.454200354786943 ns/iter 6.986125644912154 ns/iter 0.92
Regex_Caret_Period_Range_Dollar 1.9761427482017826 ns/iter 2.3554083167093522 ns/iter 0.84
Regex_Nested_Backtrack 32.61060015631062 ns/iter 38.17568736015567 ns/iter 0.85
JSON_Array_Of_Objects_Unique 384.8684111483076 ns/iter 452.07723231656166 ns/iter 0.85
JSON_Parse_1 23888.317995121906 ns/iter 28748.002743589735 ns/iter 0.83
JSON_Parse_Real 33650.49362880837 ns/iter 33489.04325577223 ns/iter 1.00
JSON_Parse_Decimal 297116.4213460525 ns/iter 354640.4995187613 ns/iter 0.84
JSON_Parse_Schema_ISO_Language 21866190.972221807 ns/iter
JSON_Fast_Hash_Helm_Chart_Lock 72.66685651086704 ns/iter 72.43023691574061 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 169.0764518345577 ns/iter 179.59100347462058 ns/iter 0.94
JSON_String_Equal/10 8.578468239027922 ns/iter 9.304027278324106 ns/iter 0.92
JSON_String_Equal/100 7.965434191949342 ns/iter 9.031429110701033 ns/iter 0.88
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3798962944532467 ns/iter 0.4047900757338927 ns/iter 0.94
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.287966985295944 ns/iter 4.5511659729043075 ns/iter 0.94
JSON_String_Fast_Hash/10 2.630300887372694 ns/iter 2.8595304115035898 ns/iter 0.92
JSON_String_Fast_Hash/100 2.16376243665738 ns/iter 2.617902335754038 ns/iter 0.83
JSON_String_Key_Hash/10 1.5651326846492841 ns/iter 1.8716211999497145 ns/iter 0.84
JSON_String_Key_Hash/100 2.7777714221437972 ns/iter 2.6538076026960544 ns/iter 1.05
JSON_Object_Defines_Miss_Same_Length 3.794943956932461 ns/iter 3.4332162628203307 ns/iter 1.11
JSON_Object_Defines_Miss_Too_Small 3.305175614373343 ns/iter 3.406540503019913 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Large 3.3477287905051907 ns/iter 3.154554426965146 ns/iter 1.06
Pointer_Object_Traverse 15.512279380562248 ns/iter 19.14789165887542 ns/iter 0.81
Pointer_Object_Try_Traverse 24.968387476215618 ns/iter 27.70470338021701 ns/iter 0.90
Pointer_Push_Back_Pointer_To_Weak_Pointer 188.44515233718082 ns/iter 209.3091253397087 ns/iter 0.90
Pointer_Walker_Schema_ISO_Language 5927479.33884285 ns/iter 5869381.555555719 ns/iter 1.01
Schema_Frame_WoT_References 6960151.515152051 ns/iter 7732099.209522944 ns/iter 0.90
Schema_Frame_OMC_References 38212303.571429275 ns/iter 43227451.000000335 ns/iter 0.88
Schema_Frame_OMC_Locations 55377154.20000495 ns/iter 42386606.44444457 ns/iter 1.31
Schema_Frame_ISO_Language_Locations 165147683.400005 ns/iter 148011145.7499902 ns/iter 1.12
Schema_Iterator_ISO_Language 2758056.6801619534 ns/iter 2876109.05652153 ns/iter 0.96
Schema_Frame_ISO_Language_Locations_To_JSON 106111166.66668372 ns/iter 126397783.39998884 ns/iter 0.84
Schema_Tracker_ISO_Language 54752946.42857469 ns/iter 62645814.36363931 ns/iter 0.87
Schema_Tracker_ISO_Language_To_JSON 17469686.18749989 ns/iter 23287780.61764952 ns/iter 0.75
Schema_Format_ISO_Language_To_JSON 128378808.19997735 ns/iter 161001650.00004834 ns/iter 0.80
Schema_Bundle_Meta_2020_12 2378609.3693209537 ns/iter 2484685.352025787 ns/iter 0.96
Schema_Frame_Many_Resources_References 275806895.4999544 ns/iter 330508416.9999759 ns/iter 0.83
Alterschema_Check_Readibility_ISO_Language_Set_3 206972041.66666928 ns/iter 232999833.33333787 ns/iter 0.89
Alterschema_Check_Readibility_OMC 40900029.411766484 ns/iter 45826955.53333451 ns/iter 0.89
EditorSchema_ForEditor_EmbeddedResources 15983433.48076871 ns/iter 16960392.341452572 ns/iter 0.94
URITemplateRouter_Create 21145.365699287344 ns/iter 22907.865492179528 ns/iter 0.92
URITemplateRouter_Match 190.47462385650775 ns/iter 205.62593908467474 ns/iter 0.93
URITemplateRouterView_Restore 11534.047348873168 ns/iter 15031.264639411875 ns/iter 0.77
URITemplateRouterView_Match 125.15750892259435 ns/iter 145.0078309093311 ns/iter 0.86

This comment was automatically generated by workflow using github-action-benchmark.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/gcc)

Details
Benchmark suite Current: dcb0e63 Previous: cfe6cd8 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.857904343246408 ns/iter 3.206008088855165 ns/iter 0.89
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.2978987046552914 ns/iter 3.16214923879195 ns/iter 1.04
Regex_Period_Asterisk 2.900156343920843 ns/iter 3.0680739997415727 ns/iter 0.95
Regex_Group_Period_Asterisk_Group 3.1013830041477606 ns/iter 3.373480674224001 ns/iter 0.92
Regex_Period_Plus 3.3403993032558223 ns/iter 3.176765616866075 ns/iter 1.05
Regex_Period 2.8999628995257374 ns/iter 3.2966125909125714 ns/iter 0.88
Regex_Caret_Period_Plus_Dollar 3.1241115807952435 ns/iter 3.311778912809158 ns/iter 0.94
Regex_Caret_Group_Period_Plus_Group_Dollar 2.9985884734201687 ns/iter 3.2981959010705824 ns/iter 0.91
Regex_Caret_Period_Asterisk_Dollar 2.826423231039199 ns/iter 3.2690476348914608 ns/iter 0.86
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1460752655308557 ns/iter 3.0056628703862516 ns/iter 1.05
Regex_Caret_X_Hyphen 8.698778112706963 ns/iter 11.037025162692002 ns/iter 0.79
Regex_Period_Md_Dollar 29.549779567930806 ns/iter 40.27703369576211 ns/iter 0.73
Regex_Caret_Slash_Period_Asterisk 6.264622052660973 ns/iter 7.906960408599746 ns/iter 0.79
Regex_Caret_Period_Range_Dollar 2.9954732471237024 ns/iter 4.233028588549191 ns/iter 0.71
Regex_Nested_Backtrack 63.54365296470495 ns/iter 83.47762104748057 ns/iter 0.76
JSON_Array_Of_Objects_Unique 405.31225715225924 ns/iter 517.4579620361328 ns/iter 0.78
JSON_Parse_1 35128.984806640874 ns/iter 54581.79542938987 ns/iter 0.64
JSON_Parse_Real 34720.68435267398 ns/iter 41437.259426823366 ns/iter 0.84
JSON_Parse_Decimal 377008.03104751435 ns/iter 446382.3511109182 ns/iter 0.84
JSON_Parse_Schema_ISO_Language 26511481.313994437 ns/iter
JSON_Fast_Hash_Helm_Chart_Lock 38.136697083848226 ns/iter 52.67594388244264 ns/iter 0.72
JSON_Equality_Helm_Chart_Lock 150.84270051429002 ns/iter 196.4210056287687 ns/iter 0.77
JSON_String_Equal/10 7.4965682109952 ns/iter 8.832488768058033 ns/iter 0.85
JSON_String_Equal/100 7.28977520576398 ns/iter 7.9326605058095945 ns/iter 0.92
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9986445312036473 ns/iter 1.1390536414934114 ns/iter 0.88
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 5.113568536495524 ns/iter 5.0462588049890975 ns/iter 1.01
JSON_String_Fast_Hash/10 2.552562140765195 ns/iter 2.5965883629059907 ns/iter 0.98
JSON_String_Fast_Hash/100 2.32593667257995 ns/iter 2.4453602046884697 ns/iter 0.95
JSON_String_Key_Hash/10 1.924938432677591 ns/iter 1.8526865016099003 ns/iter 1.04
JSON_String_Key_Hash/100 3.27215164335368 ns/iter 4.053574243344098 ns/iter 0.81
JSON_Object_Defines_Miss_Same_Length 2.10924850657737 ns/iter 2.5064487506052413 ns/iter 0.84
JSON_Object_Defines_Miss_Too_Small 2.41333254000422 ns/iter 2.4608782770675997 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Large 2.2011268604828786 ns/iter 2.2443515447665963 ns/iter 0.98
Pointer_Object_Traverse 65.80302011907555 ns/iter 59.53383939642682 ns/iter 1.11
Pointer_Object_Try_Traverse 55.17990026805437 ns/iter 40.39424817258943 ns/iter 1.37
Pointer_Push_Back_Pointer_To_Weak_Pointer 187.65423260281588 ns/iter 171.90917223830016 ns/iter 1.09
Pointer_Walker_Schema_ISO_Language 4785071.790607926 ns/iter 4758732.659476144 ns/iter 1.01
Schema_Frame_WoT_References 6314320.810909929 ns/iter 6342297.893459514 ns/iter 1.00
Schema_Frame_OMC_References 37556909.37950498 ns/iter 36219369.28142201 ns/iter 1.04
Schema_Frame_OMC_Locations 48406541.34750366 ns/iter 33805738.79588734 ns/iter 1.43
Schema_Frame_ISO_Language_Locations 162470459.93804932 ns/iter 114011645.31707764 ns/iter 1.43
Schema_Iterator_ISO_Language 2500656.2225089585 ns/iter 1934466.441033295 ns/iter 1.29
Schema_Frame_ISO_Language_Locations_To_JSON 242005030.3141276 ns/iter 162422776.222229 ns/iter 1.49
Schema_Tracker_ISO_Language 53214597.70202637 ns/iter 42178182.04094382 ns/iter 1.26
Schema_Tracker_ISO_Language_To_JSON 38885241.463070825 ns/iter 27573919.29626465 ns/iter 1.41
Schema_Format_ISO_Language_To_JSON 171179056.16760254 ns/iter 120032350.2222697 ns/iter 1.43
Schema_Bundle_Meta_2020_12 2471752.3340593306 ns/iter 2390338.3625497064 ns/iter 1.03
Schema_Frame_Many_Resources_References 407441496.84906006 ns/iter 437376499.1760254 ns/iter 0.93
Alterschema_Check_Readibility_ISO_Language_Set_3 219189961.7513021 ns/iter 249613285.06469727 ns/iter 0.88
Alterschema_Check_Readibility_OMC 51281833.64868164 ns/iter 50919294.357299805 ns/iter 1.01
EditorSchema_ForEditor_EmbeddedResources 16154456.782985378 ns/iter 17248407.006263733 ns/iter 0.94
URITemplateRouter_Create 16167.94943627303 ns/iter 18052.577122524115 ns/iter 0.90
URITemplateRouter_Match 242.765154038358 ns/iter 219.87374628183613 ns/iter 1.10
URITemplateRouterView_Restore 13110.030393366984 ns/iter 14191.475922988275 ns/iter 0.92
URITemplateRouterView_Match 154.9281681571075 ns/iter 151.7239755895186 ns/iter 1.02

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti jviotti merged commit 45dd685 into main Jan 23, 2026
13 checks passed
@jviotti jviotti deleted the simpler-json-parse-callbacks branch January 23, 2026 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants