Skip to content

Extract $vocabulary parsing as parse_vocabularies#2314

Merged
jviotti merged 1 commit intomainfrom
parse-vocabularies
Mar 27, 2026
Merged

Extract $vocabulary parsing as parse_vocabularies#2314
jviotti merged 1 commit intomainfrom
parse-vocabularies

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented Mar 27, 2026

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

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

augmentcode Bot commented Mar 27, 2026

🤖 Augment PR Summary

Summary: This PR extracts $vocabulary parsing into a new parse_vocabularies API and reuses it inside the existing vocabularies(...) logic.

Changes:

  • Added two overloads of parse_vocabularies (resolver-based and base-dialect-based) to parse a schema’s $vocabulary object into Vocabularies.
  • Implemented the new parsing helper in jsonschema.cc and wired it into the dialect vocabulary resolution path.
  • Refactored vocabularies(...) to delegate $vocabulary extraction to the helper and keep the existing “core vocabulary must be present/required” checks.
  • Added unit tests covering parsing with/without $vocabulary, boolean schemas, base-dialect overloads, and unsupported (pre-vocabulary) drafts.

Technical Notes: The helper currently only applies to vocabulary-aware base dialects (2019-09 / 2020-12 and their Hyper variants) and returns nullopt otherwise.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@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. 3 suggestions posted.

Fix All in Augment

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

Comment thread src/core/jsonschema/include/sourcemeta/core/jsonschema.h
Comment thread src/core/jsonschema/jsonschema.cc
Comment thread src/core/jsonschema/jsonschema.cc
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 11 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/core/jsonschema/jsonschema.cc">

<violation number="1" location="src/core/jsonschema/jsonschema.cc:600">
P1: `result.empty()` conflates an absent `$vocabulary` with an explicitly empty `$vocabulary`, allowing invalid explicit vocabulary declarations to pass validation.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/core/jsonschema/jsonschema.cc
@jviotti jviotti merged commit a5b788e into main Mar 27, 2026
13 checks passed
@jviotti jviotti deleted the parse-vocabularies branch March 27, 2026 13:50
Copy link
Copy Markdown

@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: 0b87569 Previous: 56eab6e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.0790003586720296 ns/iter 3.1201128917312 ns/iter 0.67
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.018863583488864 ns/iter 3.1135611788816178 ns/iter 0.65
Regex_Period_Asterisk 2.017911473847496 ns/iter 3.112563268096198 ns/iter 0.65
Regex_Group_Period_Asterisk_Group 2.019568267864136 ns/iter 3.1130941453339562 ns/iter 0.65
Regex_Period_Plus 2.306705303752301 ns/iter 3.0181578258017714 ns/iter 0.76
Regex_Period 2.3068415750162345 ns/iter 3.1127108846977425 ns/iter 0.74
Regex_Caret_Period_Plus_Dollar 2.3067710433063042 ns/iter 3.1183509220885113 ns/iter 0.74
Regex_Caret_Group_Period_Plus_Group_Dollar 2.306062021473652 ns/iter 3.1120107218390993 ns/iter 0.74
Regex_Caret_Period_Asterisk_Dollar 2.019683606639844 ns/iter 3.1107012949546275 ns/iter 0.65
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.0213623174308357 ns/iter 3.1110518874139754 ns/iter 0.65
Regex_Caret_X_Hyphen 8.652419780098993 ns/iter 7.511581904673181 ns/iter 1.15
Regex_Period_Md_Dollar 25.243750969407365 ns/iter 27.67578139702546 ns/iter 0.91
Regex_Caret_Slash_Period_Asterisk 8.89543735796475 ns/iter 7.1618780763383185 ns/iter 1.24
Regex_Caret_Period_Range_Dollar 2.386358352164303 ns/iter 4.049761647983927 ns/iter 0.59
Regex_Nested_Backtrack 44.06371564017509 ns/iter 49.18799509907932 ns/iter 0.90
JSON_Array_Of_Objects_Unique 381.8297531983833 ns/iter 439.64047740456317 ns/iter 0.87
JSON_Parse_1 5398.7979711023445 ns/iter 6262.293189862928 ns/iter 0.86
JSON_Parse_Real 9890.837558618083 ns/iter 11122.17954237376 ns/iter 0.89
JSON_Parse_Decimal 9812.386885794906 ns/iter 11835.299373570046 ns/iter 0.83
JSON_Parse_Schema_ISO_Language 3240846.380487444 ns/iter 3601419.9538461375 ns/iter 0.90
JSON_Fast_Hash_Helm_Chart_Lock 50.33449370492283 ns/iter 61.325035850836834 ns/iter 0.82
JSON_Equality_Helm_Chart_Lock 141.3458356296579 ns/iter 177.93874561642795 ns/iter 0.79
JSON_Divisible_By_Decimal 543.8289401269614 ns/iter 614.1271836526549 ns/iter 0.89
JSON_String_Equal/10 4.611369630315461 ns/iter 7.1568723151988465 ns/iter 0.64
JSON_String_Equal/100 5.761033714984473 ns/iter 6.862092087877897 ns/iter 0.84
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6921227190527323 ns/iter 0.9387622054978381 ns/iter 0.74
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 9.516030165564912 ns/iter 10.28007019239865 ns/iter 0.93
JSON_String_Fast_Hash/10 2.0164759353165564 ns/iter 2.5054285136069256 ns/iter 0.80
JSON_String_Fast_Hash/100 2.0172274128474807 ns/iter 2.489969967489993 ns/iter 0.81
JSON_String_Key_Hash/10 1.4412942122324874 ns/iter 1.8699434068099736 ns/iter 0.77
JSON_String_Key_Hash/100 6.626878369082165 ns/iter 6.537024723616687 ns/iter 1.01
JSON_Object_Defines_Miss_Same_Length 3.6039408528134063 ns/iter 3.7405715614732378 ns/iter 0.96
JSON_Object_Defines_Miss_Too_Small 3.4004440659448836 ns/iter 3.742627749115812 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 3.612661857359063 ns/iter 3.7416184731241877 ns/iter 0.97
Pointer_Object_Traverse 31.364341575729878 ns/iter 27.398367096217978 ns/iter 1.14
Pointer_Object_Try_Traverse 27.702874337047025 ns/iter 28.211136399952473 ns/iter 0.98
Pointer_Push_Back_Pointer_To_Weak_Pointer 164.93193643572587 ns/iter 177.73981297298164 ns/iter 0.93
Pointer_Walker_Schema_ISO_Language 3203962.9585254504 ns/iter 3082959.0307019455 ns/iter 1.04
Pointer_Maybe_Tracked_Deeply_Nested/0 1268866.6889692731 ns/iter 1636226.7035294604 ns/iter 0.78
Pointer_Maybe_Tracked_Deeply_Nested/1 2050578.685878998 ns/iter 2033351.7063951218 ns/iter 1.01
Pointer_Position_Tracker_Get_Deeply_Nested 716.719422805748 ns/iter 643.6068482363778 ns/iter 1.11
Schema_Frame_WoT_References 4653157.966666489 ns/iter 5309760.684210396 ns/iter 0.88
Schema_Frame_OMC_References 20617702.970586088 ns/iter 22649150.000002887 ns/iter 0.91
Schema_Frame_OMC_Locations 18746705.378377456 ns/iter 20465188.382351752 ns/iter 0.92
Schema_Frame_ISO_Language_Locations 96333451.14285216 ns/iter 110473388.49999732 ns/iter 0.87
Schema_Frame_KrakenD_References 38953595.99999893 ns/iter 45418832.312499546 ns/iter 0.86
Schema_Frame_KrakenD_Reachable 758065217.9999561 ns/iter 623740693.0000589 ns/iter 1.22
Schema_Iterator_ISO_Language 2168789.123076679 ns/iter 2329783.7840530965 ns/iter 0.93
Schema_Frame_ISO_Language_Locations_To_JSON 118058424.59998529 ns/iter 118217032.99999626 ns/iter 1.00
Schema_Tracker_ISO_Language 4997612.866666849 ns/iter 5090596.468085257 ns/iter 0.98
Schema_Tracker_ISO_Language_To_JSON 20041559.228574052 ns/iter 20647312.705882408 ns/iter 0.97
Schema_Format_ISO_Language_To_JSON 100708554.71427162 ns/iter 121902930.83333851 ns/iter 0.83
Schema_Bundle_Meta_2020_12 1562577.759465839 ns/iter 1730036.1876536561 ns/iter 0.90
Schema_Frame_Many_Resources_References 371797136.9999873 ns/iter 400984177.4999927 ns/iter 0.93
Alterschema_Check_Readibility_ISO_Language_Set_3 187476105.9999912 ns/iter 229861254.66665423 ns/iter 0.82
Alterschema_Check_Readibility_OMC 31112276.22727339 ns/iter 37744319.68420949 ns/iter 0.82
Alterschema_Apply_Readibility_KrakenD 543707968.0000352 ns/iter 681309342.0000769 ns/iter 0.80
EditorSchema_ForEditor_EmbeddedResources 12494150.232135277 ns/iter 14285765.021274064 ns/iter 0.87
URITemplateRouter_Create 13528.166911025215 ns/iter 16947.587537669366 ns/iter 0.80
URITemplateRouter_Match 150.25544652511994 ns/iter 173.43494805542886 ns/iter 0.87
URITemplateRouterView_Restore 2397.369197012575 ns/iter 4990.062184922133 ns/iter 0.48
URITemplateRouterView_Match 133.70375659241708 ns/iter 151.98327148517828 ns/iter 0.88
HTML_Build_Table_100000 69491196.19999918 ns/iter 63407772.00000503 ns/iter 1.10
HTML_Render_Table_100000 10826580.028570527 ns/iter 5435563.448819395 ns/iter 1.99

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

Copy link
Copy Markdown

@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: 0b87569 Previous: 56eab6e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.7700850336581702 ns/iter 1.8025445062714514 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.8366400409272026 ns/iter 1.8844300271981593 ns/iter 0.97
Regex_Period_Asterisk 1.7116059306072358 ns/iter 2.0202602766469426 ns/iter 0.85
Regex_Group_Period_Asterisk_Group 1.6927732550035 ns/iter 1.9266348569695997 ns/iter 0.88
Regex_Period_Plus 2.117445779240104 ns/iter 2.0492789229975665 ns/iter 1.03
Regex_Period 2.1825795960799916 ns/iter 2.048915111501344 ns/iter 1.07
Regex_Caret_Period_Plus_Dollar 2.2247289501704888 ns/iter 2.016788354822992 ns/iter 1.10
Regex_Caret_Group_Period_Plus_Group_Dollar 2.056356601510553 ns/iter 2.027302338362518 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 1.697741146922844 ns/iter 1.6951483314035656 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.7524281730630105 ns/iter 1.757653718668908 ns/iter 1.00
Regex_Caret_X_Hyphen 6.3126095185229625 ns/iter 6.403766213575279 ns/iter 0.99
Regex_Period_Md_Dollar 19.392180654130055 ns/iter 22.094565310642704 ns/iter 0.88
Regex_Caret_Slash_Period_Asterisk 4.921784182076444 ns/iter 4.743589510369597 ns/iter 1.04
Regex_Caret_Period_Range_Dollar 2.1459403565668005 ns/iter 1.9129224287067077 ns/iter 1.12
Regex_Nested_Backtrack 25.943062164548795 ns/iter 28.979389087851096 ns/iter 0.90
JSON_Array_Of_Objects_Unique 357.7760676988377 ns/iter 359.82227344927304 ns/iter 0.99
JSON_Parse_1 4466.393909245252 ns/iter 4251.136108068599 ns/iter 1.05
JSON_Parse_Real 6707.752096815611 ns/iter 6411.684644230585 ns/iter 1.05
JSON_Parse_Decimal 8267.797312949848 ns/iter 8100.747644987763 ns/iter 1.02
JSON_Parse_Schema_ISO_Language 4437741.246377207 ns/iter 4146864.6424246714 ns/iter 1.07
JSON_Fast_Hash_Helm_Chart_Lock 56.480170174776894 ns/iter 58.479918526590794 ns/iter 0.97
JSON_Equality_Helm_Chart_Lock 133.42233299420434 ns/iter 132.98636123186137 ns/iter 1.00
JSON_Divisible_By_Decimal 425.4187824700449 ns/iter 422.6100255733477 ns/iter 1.01
JSON_String_Equal/10 7.026150501531127 ns/iter 6.762313930280443 ns/iter 1.04
JSON_String_Equal/100 7.107010342975149 ns/iter 6.4211428012338 ns/iter 1.11
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7790619974854808 ns/iter 0.746393821561047 ns/iter 1.04
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.9539112084504175 ns/iter 4.316882402117664 ns/iter 0.92
JSON_String_Fast_Hash/10 2.337488548829226 ns/iter 2.3632070068878286 ns/iter 0.99
JSON_String_Fast_Hash/100 2.0202470309933034 ns/iter 2.044047764397319 ns/iter 0.99
JSON_String_Key_Hash/10 1.3936133989561443 ns/iter 1.3667867163569734 ns/iter 1.02
JSON_String_Key_Hash/100 2.1850029023092006 ns/iter 2.1702976770572855 ns/iter 1.01
JSON_Object_Defines_Miss_Same_Length 2.4904505752031314 ns/iter 2.4126924287359097 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Small 2.4744530824382713 ns/iter 2.3597029998981793 ns/iter 1.05
JSON_Object_Defines_Miss_Too_Large 2.4318312518569725 ns/iter 2.37655022623875 ns/iter 1.02
Pointer_Object_Traverse 15.032781911118569 ns/iter 14.454636931694717 ns/iter 1.04
Pointer_Object_Try_Traverse 19.977433044288617 ns/iter 19.521478991619787 ns/iter 1.02
Pointer_Push_Back_Pointer_To_Weak_Pointer 167.23996839161168 ns/iter 153.84041603894025 ns/iter 1.09
Pointer_Walker_Schema_ISO_Language 5616206.46153817 ns/iter 4800072.58064571 ns/iter 1.17
Pointer_Maybe_Tracked_Deeply_Nested/0 1706650.0738254797 ns/iter 1964916.7564105086 ns/iter 0.87
Pointer_Maybe_Tracked_Deeply_Nested/1 1551562.4023808392 ns/iter 1691950.1820650417 ns/iter 0.92
Pointer_Position_Tracker_Get_Deeply_Nested 348.4266336513084 ns/iter 347.75764115423607 ns/iter 1.00
Schema_Frame_WoT_References 5377240.830000574 ns/iter 4900754.91666649 ns/iter 1.10
Schema_Frame_OMC_References 28896142.37499908 ns/iter 26306203.53846343 ns/iter 1.10
Schema_Frame_OMC_Locations 21425259.124999486 ns/iter 24951708.360003978 ns/iter 0.86
Schema_Frame_ISO_Language_Locations 68714759.22221433 ns/iter 76638619.14284098 ns/iter 0.90
Schema_Frame_KrakenD_References 43989343.749998964 ns/iter 49796145.83334068 ns/iter 0.88
Schema_Frame_KrakenD_Reachable 356480562.5000531 ns/iter 405389895.4999795 ns/iter 0.88
Schema_Iterator_ISO_Language 1811166.890080367 ns/iter 1939042.1267215277 ns/iter 0.93
Schema_Frame_ISO_Language_Locations_To_JSON 85217395.87499155 ns/iter 93338263.8333266 ns/iter 0.91
Schema_Tracker_ISO_Language 10082568.689190214 ns/iter 8771232.812500784 ns/iter 1.15
Schema_Tracker_ISO_Language_To_JSON 15165904.463415466 ns/iter 17151114.348840818 ns/iter 0.88
Schema_Format_ISO_Language_To_JSON 89158074.11110815 ns/iter 83997774.00001897 ns/iter 1.06
Schema_Bundle_Meta_2020_12 1451806.3128937068 ns/iter 1298288.525427957 ns/iter 1.12
Schema_Frame_Many_Resources_References 335940583.5000189 ns/iter 357444645.9999763 ns/iter 0.94
Alterschema_Check_Readibility_ISO_Language_Set_3 185221291.7499969 ns/iter 147375156.25000697 ns/iter 1.26
Alterschema_Check_Readibility_OMC 44248217.10526167 ns/iter 35182109.0952442 ns/iter 1.26
Alterschema_Apply_Readibility_KrakenD 581118833.000005 ns/iter 487118791.9999329 ns/iter 1.19
EditorSchema_ForEditor_EmbeddedResources 12860007.936166205 ns/iter 11168296.365082955 ns/iter 1.15
URITemplateRouter_Create 19678.007640423613 ns/iter 16125.582406058824 ns/iter 1.22
URITemplateRouter_Match 193.53574206819192 ns/iter 162.00015415424292 ns/iter 1.19
URITemplateRouterView_Restore 16313.68461623674 ns/iter 12753.480146706832 ns/iter 1.28
URITemplateRouterView_Match 156.18752832443457 ns/iter 131.44665030563903 ns/iter 1.19
HTML_Build_Table_100000 74801486.1111162 ns/iter 78208148.22222625 ns/iter 0.96
HTML_Render_Table_100000 4744766.025640665 ns/iter 4053582.8323362567 ns/iter 1.17

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

Copy link
Copy Markdown

@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: 0b87569 Previous: 56eab6e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.102792462684294 ns/iter 4.156610824037142 ns/iter 0.99
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.081622194788299 ns/iter 4.181878725810953 ns/iter 0.98
Regex_Period_Asterisk 4.71223527837474 ns/iter 4.776789309101179 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 4.395976250000899 ns/iter 4.4878011273727925 ns/iter 0.98
Regex_Period_Plus 5.024724000002152 ns/iter 5.269908035714366 ns/iter 0.95
Regex_Period 5.024128571428881 ns/iter 5.127526999999645 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 4.960648002145242 ns/iter 4.797797344820608 ns/iter 1.03
Regex_Caret_Group_Period_Plus_Group_Dollar 5.221255999999812 ns/iter 4.560269374999848 ns/iter 1.14
Regex_Caret_Period_Asterisk_Dollar 4.889802678572356 ns/iter 4.557438626244461 ns/iter 1.07
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.0819311142491115 ns/iter 4.173389999999699 ns/iter 0.98
Regex_Caret_X_Hyphen 7.248579241070681 ns/iter 7.559986607143442 ns/iter 0.96
Regex_Period_Md_Dollar 35.012337678789926 ns/iter 37.25164754907806 ns/iter 0.94
Regex_Caret_Slash_Period_Asterisk 6.910577008929814 ns/iter 7.003817857143499 ns/iter 0.99
Regex_Caret_Period_Range_Dollar 4.095522118707069 ns/iter 4.126023681193867 ns/iter 0.99
Regex_Nested_Backtrack 107.79064062500511 ns/iter 104.88317187498099 ns/iter 1.03
JSON_Array_Of_Objects_Unique 499.57910000011907 ns/iter 501.28829999994196 ns/iter 1.00
JSON_Parse_1 8695.562966237027 ns/iter 8633.776634927002 ns/iter 1.01
JSON_Parse_Real 15826.483659494083 ns/iter 16295.82832028002 ns/iter 0.97
JSON_Parse_Decimal 15059.738839282894 ns/iter 15717.357142856414 ns/iter 0.96
JSON_Parse_Schema_ISO_Language 6007795.535712798 ns/iter 6171819.642858623 ns/iter 0.97
JSON_Fast_Hash_Helm_Chart_Lock 67.80308035713644 ns/iter 69.57959821428567 ns/iter 0.97
JSON_Equality_Helm_Chart_Lock 268.3002737365663 ns/iter 262.1602750964828 ns/iter 1.02
JSON_Divisible_By_Decimal 1138.7412499999527 ns/iter 1128.16589285712 ns/iter 1.01
JSON_String_Equal/10 12.884051785712408 ns/iter 12.909646428572128 ns/iter 1.00
JSON_String_Equal/100 13.487825832642908 ns/iter 13.575111769752802 ns/iter 0.99
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1957459375002486 ns/iter 2.198701249999857 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.905766071428713 ns/iter 12.996512218764 ns/iter 0.99
JSON_String_Fast_Hash/10 4.081619293002917 ns/iter 4.087787328728215 ns/iter 1.00
JSON_String_Fast_Hash/100 4.083415498363021 ns/iter 4.082556569789587 ns/iter 1.00
JSON_String_Key_Hash/10 4.102456435896651 ns/iter 4.1158486588765655 ns/iter 1.00
JSON_String_Key_Hash/100 14.407844801750997 ns/iter 14.447071140858938 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.761498883928992 ns/iter 3.849798520771223 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Small 5.0219670000001315 ns/iter 5.080442857143501 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 3.7623905289965442 ns/iter 3.903538921600888 ns/iter 0.96
Pointer_Object_Traverse 42.58324783835824 ns/iter 44.28828124999181 ns/iter 0.96
Pointer_Object_Try_Traverse 49.43664766002899 ns/iter 50.496079999993526 ns/iter 0.98
Pointer_Push_Back_Pointer_To_Weak_Pointer 156.24658482141942 ns/iter 160.60880093362493 ns/iter 0.97
Pointer_Walker_Schema_ISO_Language 11272023.214283016 ns/iter 12492118.750000004 ns/iter 0.90
Pointer_Maybe_Tracked_Deeply_Nested/0 2330746.590909409 ns/iter 2270303.0303027774 ns/iter 1.03
Pointer_Maybe_Tracked_Deeply_Nested/1 3476448.5294121476 ns/iter 3560911.7647067355 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 611.5906250000945 ns/iter 613.0681919641136 ns/iter 1.00
Schema_Frame_WoT_References 10356625.000000007 ns/iter 10347673.437497206 ns/iter 1.00
Schema_Frame_OMC_References 42249217.64706082 ns/iter 45652306.666655324 ns/iter 0.93
Schema_Frame_OMC_Locations 39364400.00000453 ns/iter 42919099.999995954 ns/iter 0.92
Schema_Frame_ISO_Language_Locations 182401725.00003383 ns/iter 205082099.99995112 ns/iter 0.89
Schema_Frame_KrakenD_References 85463955.55554731 ns/iter 96066700.00000252 ns/iter 0.89
Schema_Frame_KrakenD_Reachable 493081100.00004035 ns/iter 531955599.9999466 ns/iter 0.93
Schema_Iterator_ISO_Language 4980023.448275335 ns/iter 5128179.9999992475 ns/iter 0.97
Schema_Frame_ISO_Language_Locations_To_JSON 286384949.999956 ns/iter 297752950.00001734 ns/iter 0.96
Schema_Tracker_ISO_Language 15969268.888890535 ns/iter 17094015.555555113 ns/iter 0.93
Schema_Tracker_ISO_Language_To_JSON 46269933.33334516 ns/iter 51724769.99998707 ns/iter 0.89
Schema_Format_ISO_Language_To_JSON 180056374.99993554 ns/iter 205986400.00002888 ns/iter 0.87
Schema_Bundle_Meta_2020_12 2887717.3728853636 ns/iter 2934716.525430758 ns/iter 0.98
Schema_Frame_Many_Resources_References 1469739699.999991 ns/iter 1511372100.000017 ns/iter 0.97
Alterschema_Check_Readibility_ISO_Language_Set_3 307250500.0000092 ns/iter 336306400.0000122 ns/iter 0.91
Alterschema_Check_Readibility_OMC 58326827.27273922 ns/iter 64182000.000011444 ns/iter 0.91
Alterschema_Apply_Readibility_KrakenD 932882199.9999945 ns/iter 1051364599.9999425 ns/iter 0.89
EditorSchema_ForEditor_EmbeddedResources 27767350.000002667 ns/iter 28738312.499986783 ns/iter 0.97
URITemplateRouter_Create 22136.681250003676 ns/iter 23543.84687500044 ns/iter 0.94
URITemplateRouter_Match 208.73097952090745 ns/iter 207.3550937499391 ns/iter 1.01
URITemplateRouterView_Restore 28546.759612677146 ns/iter 31244.857142849825 ns/iter 0.91
URITemplateRouterView_Match 152.23175882895333 ns/iter 153.63983394907982 ns/iter 0.99
HTML_Build_Table_100000 86871900.00000556 ns/iter 87712971.42857292 ns/iter 0.99
HTML_Render_Table_100000 7637175.555555586 ns/iter 8098261.111109018 ns/iter 0.94

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

Copy link
Copy Markdown

@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: 0b87569 Previous: 56eab6e Ratio
HTML_Build_Table_100000 66481186.99999115 ns/iter 70800019.00001 ns/iter 0.94
HTML_Render_Table_100000 5343907.068183026 ns/iter 5468037.811022971 ns/iter 0.98
URITemplateRouter_Create 14030.722687725813 ns/iter 14074.322050623472 ns/iter 1.00
URITemplateRouter_Match 178.2749688280189 ns/iter 158.56795294394468 ns/iter 1.12
URITemplateRouterView_Restore 6182.066983489172 ns/iter 7945.81202072341 ns/iter 0.78
URITemplateRouterView_Match 150.64099455113367 ns/iter 127.97458471968474 ns/iter 1.18
EditorSchema_ForEditor_EmbeddedResources 13914210.300017657 ns/iter 13953920.219992142 ns/iter 1.00
Alterschema_Check_Readibility_ISO_Language_Set_3 208493184.33329245 ns/iter 208500189.3333356 ns/iter 1.00
Alterschema_Check_Readibility_OMC 33594830.952378765 ns/iter 33808924.33334079 ns/iter 0.99
Alterschema_Apply_Readibility_KrakenD 572990994.0000652 ns/iter 582150940.0000196 ns/iter 0.98
Schema_Frame_WoT_References 5395323.084614854 ns/iter 5426836.945736597 ns/iter 0.99
Schema_Frame_OMC_References 22092180.874999203 ns/iter 22201638.56249968 ns/iter 1.00
Schema_Frame_OMC_Locations 20522755.485710926 ns/iter 20640755.382353693 ns/iter 0.99
Schema_Frame_ISO_Language_Locations 100824357.14285305 ns/iter 101124090.14284042 ns/iter 1.00
Schema_Frame_KrakenD_References 40397664.47059425 ns/iter 40180066.50000593 ns/iter 1.01
Schema_Frame_KrakenD_Reachable 543136837.00002 ns/iter 553473800.0001198 ns/iter 0.98
Schema_Iterator_ISO_Language 2570907.1131390985 ns/iter 2483690.304964363 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 216306167.33333835 ns/iter 221596377.99995837 ns/iter 0.98
Schema_Tracker_ISO_Language 5030410.905798513 ns/iter 5212173.340740062 ns/iter 0.97
Schema_Tracker_ISO_Language_To_JSON 22492452.41935774 ns/iter 23151620.566659402 ns/iter 0.97
Schema_Format_ISO_Language_To_JSON 108132331.6666006 ns/iter 108936244.28571716 ns/iter 0.99
Schema_Bundle_Meta_2020_12 1806933.5799042005 ns/iter 1815119.4857164703 ns/iter 1.00
Schema_Frame_Many_Resources_References 379459974.5000369 ns/iter 377698429.5000148 ns/iter 1.00
Pointer_Object_Traverse 26.36070740957355 ns/iter 26.321870072364703 ns/iter 1.00
Pointer_Object_Try_Traverse 30.859589982913086 ns/iter 27.502849021923673 ns/iter 1.12
Pointer_Push_Back_Pointer_To_Weak_Pointer 166.68724468603233 ns/iter 161.74878833430674 ns/iter 1.03
Pointer_Walker_Schema_ISO_Language 3345427.9808604964 ns/iter 3410724.697560887 ns/iter 0.98
Pointer_Maybe_Tracked_Deeply_Nested/0 1752961.3606967446 ns/iter 1756904.0925002354 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 2080193.5621298421 ns/iter 2037068.6109506309 ns/iter 1.02
Pointer_Position_Tracker_Get_Deeply_Nested 420.20502039478316 ns/iter 512.1026813121038 ns/iter 0.82
JSON_Array_Of_Objects_Unique 397.8982401907588 ns/iter 425.83856088835057 ns/iter 0.93
JSON_Parse_1 8282.868443425812 ns/iter 8271.460151601283 ns/iter 1.00
JSON_Parse_Real 11974.47169974588 ns/iter 12346.849445435188 ns/iter 0.97
JSON_Parse_Decimal 18302.25072931386 ns/iter 18464.77101556665 ns/iter 0.99
JSON_Parse_Schema_ISO_Language 4702409.925675658 ns/iter 4882260.29861178 ns/iter 0.96
JSON_Fast_Hash_Helm_Chart_Lock 57.59760567351574 ns/iter 70.6879208534783 ns/iter 0.81
JSON_Equality_Helm_Chart_Lock 161.08251456377664 ns/iter 159.91612010499702 ns/iter 1.01
JSON_Divisible_By_Decimal 591.0928386032826 ns/iter 568.7377617940547 ns/iter 1.04
JSON_String_Equal/10 6.643578425065909 ns/iter 5.995521945372423 ns/iter 1.11
JSON_String_Equal/100 7.24890098258996 ns/iter 6.619132089775078 ns/iter 1.10
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7470850795401554 ns/iter 0.7465211789635193 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 28.01754736692487 ns/iter 27.98128436671779 ns/iter 1.00
JSON_String_Fast_Hash/10 1.246032388940241 ns/iter 1.2468822593527495 ns/iter 1.00
JSON_String_Fast_Hash/100 1.2456808761612064 ns/iter 1.2464093144558566 ns/iter 1.00
JSON_String_Key_Hash/10 1.2467774560973537 ns/iter 1.246902744315106 ns/iter 1.00
JSON_String_Key_Hash/100 12.441825589419556 ns/iter 12.437771774913694 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.116600245313991 ns/iter 3.1115819692095816 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.428566422234746 ns/iter 3.432411662325348 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.4263921424695667 ns/iter 3.435358219326336 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 1.2547763076575418 ns/iter 1.2454142870741187 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.2457501023762816 ns/iter 1.2453482863529914 ns/iter 1.00
Regex_Period_Asterisk 1.2453430028275998 ns/iter 1.2463906260454127 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 1.2457682302987465 ns/iter 1.2466105202903244 ns/iter 1.00
Regex_Period_Plus 1.2485539338888376 ns/iter 1.2456916183797535 ns/iter 1.00
Regex_Period 1.246219156354079 ns/iter 1.2456116001523831 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.2454426673718952 ns/iter 1.246204818508838 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 1.5570433869745641 ns/iter 1.5636923207560416 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 1.5580742004082226 ns/iter 1.556481660689068 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5569449253238508 ns/iter 1.5630679443690871 ns/iter 1.00
Regex_Caret_X_Hyphen 12.133706457089751 ns/iter 12.768792348686617 ns/iter 0.95
Regex_Period_Md_Dollar 28.846702943763468 ns/iter 30.167088451062813 ns/iter 0.96
Regex_Caret_Slash_Period_Asterisk 4.981725916875515 ns/iter 4.97972930686555 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.5580964679911882 ns/iter 1.5576550703627579 ns/iter 1.00
Regex_Nested_Backtrack 49.71900964972775 ns/iter 54.08035994971486 ns/iter 0.92

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

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.

1 participant