Skip to content

Allow querying the number of routes in URITemplateRouter#2339

Merged
jviotti merged 1 commit intomainfrom
router-size
Apr 8, 2026
Merged

Allow querying the number of routes in URITemplateRouter#2339
jviotti merged 1 commit intomainfrom
router-size

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented Apr 8, 2026

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
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.

No issues found across 5 files

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Apr 8, 2026

🤖 Augment PR Summary

Summary: This PR adds the ability to query how many routes are registered in a URITemplateRouter and in its serialized URITemplateRouterView.

Changes:

  • Expose URITemplateRouter::size() and add an internal size_ counter.
  • Increment size_ when adding a route that previously had no handler (identifier == 0).
  • Expose URITemplateRouterView::size() by scanning serialized nodes and counting non-zero identifiers.
  • Add unit tests for empty/single/multiple routes, duplicate route overwrites, root template, and base-path behavior.

Technical Notes: Route identifiers use 0 as the “no handler” sentinel (and add() asserts identifier > 0), so size() effectively counts nodes with registered handlers.

🤖 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. 2 suggestions posted.

Fix All in Augment

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

return 0;
}

if (header->node_count == 0 ||
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

URITemplateRouterView::size() only bounds-checks node_count against the total buffer size, but doesn’t validate string_table_offset/arguments_offset like match()/base_path() do. On a partially corrupt blob where node_count overlaps the string table, size() could return a non-zero count even though the view should be considered invalid.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

EXPECT_EQ(captures.size(), 0);
}

TEST_F(URITemplateRouterViewTest, size_empty_router) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The new URITemplateRouterView::size() tests cover empty/single/multiple/duplicate/base-path cases, but don’t cover root-template (router.add("", ...)) or context-overwrite scenarios. Adding those would help ensure the serialized view’s count stays aligned with URITemplateRouter::size() for these edge cases.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

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: 8c240df Previous: c91f056 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.5191575211365773 ns/iter 3.1162638596690204 ns/iter 1.13
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.515981681529928 ns/iter 3.1118138685902053 ns/iter 1.13
Regex_Period_Asterisk 3.5157202926563307 ns/iter 3.1110339315365225 ns/iter 1.13
Regex_Group_Period_Asterisk_Group 3.5187127634255737 ns/iter 3.1121641277709626 ns/iter 1.13
Regex_Period_Plus 3.9214303753322843 ns/iter 3.1057304452289127 ns/iter 1.26
Regex_Period 3.8676790089810087 ns/iter 2.9059350623410998 ns/iter 1.33
Regex_Caret_Period_Plus_Dollar 3.869140735854321 ns/iter 3.0822628199144186 ns/iter 1.26
Regex_Caret_Group_Period_Plus_Group_Dollar 3.868390404175844 ns/iter 3.114174773516786 ns/iter 1.24
Regex_Caret_Period_Asterisk_Dollar 3.511177596397031 ns/iter 3.1135700020824943 ns/iter 1.13
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.518364978533931 ns/iter 3.1188914386164512 ns/iter 1.13
Regex_Caret_X_Hyphen 11.953729351377097 ns/iter 13.068954374870795 ns/iter 0.91
Regex_Period_Md_Dollar 26.37563334618461 ns/iter 27.68690426097258 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 7.518448309725621 ns/iter 5.916033059146517 ns/iter 1.27
Regex_Caret_Period_Range_Dollar 3.9231061767757094 ns/iter 3.1130184970917143 ns/iter 1.26
Regex_Nested_Backtrack 46.71752733488522 ns/iter 49.35604189925769 ns/iter 0.95
JSON_Array_Of_Objects_Unique 421.2141905557489 ns/iter 405.4028655055857 ns/iter 1.04
JSON_Parse_1 5848.678474932939 ns/iter 5985.8121641949265 ns/iter 0.98
JSON_Parse_Real 10393.332358419244 ns/iter 10851.647942046013 ns/iter 0.96
JSON_Parse_Decimal 11336.783181969495 ns/iter 11692.505404416072 ns/iter 0.97
JSON_Parse_Schema_ISO_Language 3659780.0937503423 ns/iter 3596322.360824592 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 65.0584599347264 ns/iter 61.00173707220628 ns/iter 1.07
JSON_Equality_Helm_Chart_Lock 171.3704742842593 ns/iter 165.0493584725354 ns/iter 1.04
JSON_Divisible_By_Decimal 239.08211732382912 ns/iter 245.88627087993706 ns/iter 0.97
JSON_String_Equal/10 5.9792142687156105 ns/iter 6.2318417796709 ns/iter 0.96
JSON_String_Equal/100 6.68306807819668 ns/iter 6.85693231580348 ns/iter 0.97
JSON_String_Equal_Small_By_Perfect_Hash/10 1.055257264849484 ns/iter 0.9357323845825224 ns/iter 1.13
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.33716197680453 ns/iter 14.621472241760618 ns/iter 0.84
JSON_String_Fast_Hash/10 2.4650383119463948 ns/iter 2.8011263067351266 ns/iter 0.88
JSON_String_Fast_Hash/100 2.4623714268502073 ns/iter 2.8014672881950102 ns/iter 0.88
JSON_String_Key_Hash/10 2.4623216561274064 ns/iter 2.5568190779098394 ns/iter 0.96
JSON_String_Key_Hash/100 7.732451279352386 ns/iter 9.081371582363145 ns/iter 0.85
JSON_Object_Defines_Miss_Same_Length 4.222548017652856 ns/iter 3.7378510209869047 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Small 4.2231491474130936 ns/iter 3.739650577964637 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 4.234512665488701 ns/iter 3.7386570661719354 ns/iter 1.13
Pointer_Object_Traverse 27.358976769526322 ns/iter 25.177906966127953 ns/iter 1.09
Pointer_Object_Try_Traverse 29.722161360109673 ns/iter 28.29936184914076 ns/iter 1.05
Pointer_Push_Back_Pointer_To_Weak_Pointer 175.92893517121126 ns/iter 174.9345831289165 ns/iter 1.01
Pointer_Walker_Schema_ISO_Language 3274251.8232558975 ns/iter 3048874.5844153035 ns/iter 1.07
Pointer_Maybe_Tracked_Deeply_Nested/0 1382093.0098232257 ns/iter 1476596.3556487518 ns/iter 0.94
Pointer_Maybe_Tracked_Deeply_Nested/1 1701243.768115946 ns/iter 1783212.835897384 ns/iter 0.95
Pointer_Position_Tracker_Get_Deeply_Nested 549.1289266266995 ns/iter 656.0137495855189 ns/iter 0.84
Schema_Frame_WoT_References 5247799.992537918 ns/iter 5137798.05797175 ns/iter 1.02
Schema_Frame_OMC_References 21677334.281250183 ns/iter 22306632.666665353 ns/iter 0.97
Schema_Frame_OMC_Locations 20102192.88571469 ns/iter 20020418.055556398 ns/iter 1.00
Schema_Frame_ISO_Language_Locations 100801064.8333387 ns/iter 101716005.16667922 ns/iter 0.99
Schema_Frame_KrakenD_References 40137212.88235421 ns/iter 40204897.176469035 ns/iter 1.00
Schema_Frame_KrakenD_Reachable 600305121.0000194 ns/iter 591335917.0000377 ns/iter 1.02
Schema_Iterator_ISO_Language 2405191.4776630043 ns/iter 2253984.2596154213 ns/iter 1.07
Schema_Frame_ISO_Language_Locations_To_JSON 115852892.79998961 ns/iter 110316783.40000327 ns/iter 1.05
Schema_Tracker_ISO_Language 4851440.92465751 ns/iter 4903759.513888575 ns/iter 0.99
Schema_Tracker_ISO_Language_To_JSON 18633457.000001308 ns/iter 19950575.194444455 ns/iter 0.93
Schema_Format_ISO_Language_To_JSON 107982983.16666432 ns/iter 107325876.16665037 ns/iter 1.01
Schema_Bundle_Meta_2020_12 1674978.408116578 ns/iter 1662057.9739331969 ns/iter 1.01
Schema_Frame_Many_Resources_References 381248266.9999895 ns/iter 378767375.49999005 ns/iter 1.01
Alterschema_Check_Readibility_ISO_Language_Set_3 207372788.66666505 ns/iter 217383906.99999854 ns/iter 0.95
Alterschema_Check_Readibility_OMC 34241759.05000197 ns/iter 33675574.23809688 ns/iter 1.02
Alterschema_Apply_Readibility_KrakenD 582050390.9999388 ns/iter 597859258.9999608 ns/iter 0.97
Alterschema_Check_Invalid_External_Refs 113751048.83332671 ns/iter 118993460.49998863 ns/iter 0.96
EditorSchema_ForEditor_EmbeddedResources 14090387.13999962 ns/iter 13642374.058824372 ns/iter 1.03
URITemplateRouter_Create 15141.52311922939 ns/iter 16542.547363861806 ns/iter 0.92
URITemplateRouter_Match 182.58550896479488 ns/iter 175.3842720138154 ns/iter 1.04
URITemplateRouter_Match_BasePath 217.34583790380236 ns/iter 202.67810581452383 ns/iter 1.07
URITemplateRouterView_Restore 6366.285637203404 ns/iter 5118.846064571062 ns/iter 1.24
URITemplateRouterView_Match 158.1176798501773 ns/iter 149.14850694322843 ns/iter 1.06
URITemplateRouterView_Match_BasePath 177.28289826173966 ns/iter 166.21589672165746 ns/iter 1.07
URITemplateRouterView_Arguments 479.45783881436415 ns/iter 475.14791387421013 ns/iter 1.01
HTML_Build_Table_100000 87388072.37499203 ns/iter 63094282.27272788 ns/iter 1.39
HTML_Render_Table_100000 4888482.524475793 ns/iter 5321073.534350978 ns/iter 0.92

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: 8c240df Previous: c91f056 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.232328736064591 ns/iter 2.1088311246916387 ns/iter 1.06
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.2997510279554785 ns/iter 2.1300671208192234 ns/iter 1.08
Regex_Period_Asterisk 2.3043603893021145 ns/iter 1.8564937103796373 ns/iter 1.24
Regex_Group_Period_Asterisk_Group 2.4178480363108217 ns/iter 2.356859482418569 ns/iter 1.03
Regex_Period_Plus 2.703795393541993 ns/iter 2.602944493765998 ns/iter 1.04
Regex_Period 2.8134621332267447 ns/iter 2.8373108353259315 ns/iter 0.99
Regex_Caret_Period_Plus_Dollar 2.641215829783445 ns/iter 2.5595943532915175 ns/iter 1.03
Regex_Caret_Group_Period_Plus_Group_Dollar 2.740844386417399 ns/iter 2.4172798314941706 ns/iter 1.13
Regex_Caret_Period_Asterisk_Dollar 2.238524942956282 ns/iter 1.889146725379356 ns/iter 1.18
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.2607920863182853 ns/iter 1.7362734036549257 ns/iter 1.30
Regex_Caret_X_Hyphen 8.391706640234716 ns/iter 7.6934995893027365 ns/iter 1.09
Regex_Period_Md_Dollar 26.848578003021494 ns/iter 21.9925528908887 ns/iter 1.22
Regex_Caret_Slash_Period_Asterisk 5.987214094653972 ns/iter 5.280183750001015 ns/iter 1.13
Regex_Caret_Period_Range_Dollar 2.402545733613937 ns/iter 2.0589424340227005 ns/iter 1.17
Regex_Nested_Backtrack 34.10529711300428 ns/iter 26.925596172540455 ns/iter 1.27
JSON_Array_Of_Objects_Unique 527.0986878944337 ns/iter 385.5567468505758 ns/iter 1.37
JSON_Parse_1 6771.025474616451 ns/iter 4187.881418402051 ns/iter 1.62
JSON_Parse_Real 9787.60841748027 ns/iter 9285.089511771557 ns/iter 1.05
JSON_Parse_Decimal 11987.692032659244 ns/iter 11240.562713453197 ns/iter 1.07
JSON_Parse_Schema_ISO_Language 6113767.791667613 ns/iter 5566755.626984689 ns/iter 1.10
JSON_Fast_Hash_Helm_Chart_Lock 81.16817931512291 ns/iter 75.92328924630942 ns/iter 1.07
JSON_Equality_Helm_Chart_Lock 173.86606930631066 ns/iter 169.1125640112206 ns/iter 1.03
JSON_Divisible_By_Decimal 281.76416084314707 ns/iter 204.16253638910558 ns/iter 1.38
JSON_String_Equal/10 8.339725303293124 ns/iter 8.343934548058748 ns/iter 1.00
JSON_String_Equal/100 9.119459971147856 ns/iter 7.549490241658614 ns/iter 1.21
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0118716681218816 ns/iter 0.8720876526944517 ns/iter 1.16
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.5491307739923394 ns/iter 3.818609702397438 ns/iter 1.19
JSON_String_Fast_Hash/10 3.343393145633747 ns/iter 2.730360544601593 ns/iter 1.22
JSON_String_Fast_Hash/100 2.814641327006439 ns/iter 2.573302735838817 ns/iter 1.09
JSON_String_Key_Hash/10 1.8613047508016436 ns/iter 1.9860604794738563 ns/iter 0.94
JSON_String_Key_Hash/100 3.0881808849952135 ns/iter 3.7496771462551366 ns/iter 0.82
JSON_Object_Defines_Miss_Same_Length 3.799827924017722 ns/iter 2.8380192998852727 ns/iter 1.34
JSON_Object_Defines_Miss_Too_Small 2.9638641926325158 ns/iter 3.5047296281415887 ns/iter 0.85
JSON_Object_Defines_Miss_Too_Large 3.097465148583176 ns/iter 2.76528844357432 ns/iter 1.12
Pointer_Object_Traverse 21.09223008232047 ns/iter 19.360127322221445 ns/iter 1.09
Pointer_Object_Try_Traverse 27.476296171341698 ns/iter 27.885258287759484 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 191.81987128972014 ns/iter 188.40243530386758 ns/iter 1.02
Pointer_Walker_Schema_ISO_Language 6218341.5948272245 ns/iter 5567550.204918767 ns/iter 1.12
Pointer_Maybe_Tracked_Deeply_Nested/0 1424741.1277779064 ns/iter 2078290.7172675824 ns/iter 0.69
Pointer_Maybe_Tracked_Deeply_Nested/1 2040375.890243656 ns/iter 2965294.8207170544 ns/iter 0.69
Pointer_Position_Tracker_Get_Deeply_Nested 435.02633121310055 ns/iter 507.8081319964636 ns/iter 0.86
Schema_Frame_WoT_References 6556852.500000332 ns/iter 5618958.711711703 ns/iter 1.17
Schema_Frame_OMC_References 38363821.72221419 ns/iter 32170317.307698216 ns/iter 1.19
Schema_Frame_OMC_Locations 33927629.20000223 ns/iter 27079736.111116085 ns/iter 1.25
Schema_Frame_ISO_Language_Locations 116362569.49998368 ns/iter 86220988.14284332 ns/iter 1.35
Schema_Frame_KrakenD_References 70899222.22222513 ns/iter 51553879.19999157 ns/iter 1.38
Schema_Frame_KrakenD_Reachable 662837416.0000021 ns/iter 542859750.9999236 ns/iter 1.22
Schema_Iterator_ISO_Language 2534042.000000061 ns/iter 2244220.2404179545 ns/iter 1.13
Schema_Frame_ISO_Language_Locations_To_JSON 125608958.25004081 ns/iter 95697964.28572121 ns/iter 1.31
Schema_Tracker_ISO_Language 14434562.500003355 ns/iter 10490382.508194553 ns/iter 1.38
Schema_Tracker_ISO_Language_To_JSON 21002642.48387277 ns/iter 15107533.70213082 ns/iter 1.39
Schema_Format_ISO_Language_To_JSON 110558347.50004578 ns/iter 83307601.66664833 ns/iter 1.33
Schema_Bundle_Meta_2020_12 2008479.1341031056 ns/iter 1876761.9386720373 ns/iter 1.07
Schema_Frame_Many_Resources_References 529378458.0001102 ns/iter 380086062.5000269 ns/iter 1.39
Alterschema_Check_Readibility_ISO_Language_Set_3 215304937.4999796 ns/iter 188115656.24997684 ns/iter 1.14
Alterschema_Check_Readibility_OMC 48758347.2499864 ns/iter 39142474.50000453 ns/iter 1.25
Alterschema_Apply_Readibility_KrakenD 668916124.999896 ns/iter 672681832.9998423 ns/iter 0.99
Alterschema_Check_Invalid_External_Refs 98029607.1428646 ns/iter 109197385.37501189 ns/iter 0.90
EditorSchema_ForEditor_EmbeddedResources 15764346.545464294 ns/iter 13954159.280006025 ns/iter 1.13
URITemplateRouter_Create 21568.048586304976 ns/iter 20275.55285005555 ns/iter 1.06
URITemplateRouter_Match 200.36815272967448 ns/iter 195.90725420267543 ns/iter 1.02
URITemplateRouter_Match_BasePath 253.97866954342976 ns/iter 212.84812341317405 ns/iter 1.19
URITemplateRouterView_Restore 21249.456147593228 ns/iter 16576.261139728835 ns/iter 1.28
URITemplateRouterView_Match 186.63158334419836 ns/iter 143.85623096630616 ns/iter 1.30
URITemplateRouterView_Match_BasePath 194.4736127702187 ns/iter 164.1822539094045 ns/iter 1.18
URITemplateRouterView_Arguments 566.8752953265603 ns/iter 470.6728102418752 ns/iter 1.20
HTML_Build_Table_100000 90309906.25001323 ns/iter 75265018.44444686 ns/iter 1.20
HTML_Render_Table_100000 6007143.061947519 ns/iter 5473661.243903609 ns/iter 1.10

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

@jviotti jviotti merged commit bd4eb91 into main Apr 8, 2026
13 checks passed
@jviotti jviotti deleted the router-size branch April 8, 2026 20:03
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: 8c240df Previous: c91f056 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.258561480819156 ns/iter 4.276614375000065 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.330989374999206 ns/iter 4.273938058036363 ns/iter 1.01
Regex_Period_Asterisk 4.404055212400002 ns/iter 3.9192249999999262 ns/iter 1.12
Regex_Group_Period_Asterisk_Group 4.26568841327393 ns/iter 3.556290663292275 ns/iter 1.20
Regex_Period_Plus 4.317492686280605 ns/iter 3.8249045758931284 ns/iter 1.13
Regex_Period 4.2285736588252965 ns/iter 3.837660944353145 ns/iter 1.10
Regex_Caret_Period_Plus_Dollar 4.05093174830495 ns/iter 4.2541175873857835 ns/iter 0.95
Regex_Caret_Group_Period_Plus_Group_Dollar 3.835975006850762 ns/iter 4.259451292741467 ns/iter 0.90
Regex_Caret_Period_Asterisk_Dollar 4.296543145402672 ns/iter 3.576389725756051 ns/iter 1.20
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.20045689544671 ns/iter 3.576285618614536 ns/iter 1.17
Regex_Caret_X_Hyphen 7.734579241070857 ns/iter 6.945821428571618 ns/iter 1.11
Regex_Period_Md_Dollar 35.747334120486336 ns/iter 34.442665347185425 ns/iter 1.04
Regex_Caret_Slash_Period_Asterisk 7.513588169644996 ns/iter 6.545611607144 ns/iter 1.15
Regex_Caret_Period_Range_Dollar 4.286607386480189 ns/iter 3.9144005287252464 ns/iter 1.10
Regex_Nested_Backtrack 95.8805850053296 ns/iter 85.53659885996478 ns/iter 1.12
JSON_Array_Of_Objects_Unique 520.2405357142734 ns/iter 545.9080357143519 ns/iter 0.95
JSON_Parse_1 8169.531249999957 ns/iter 7754.694196428095 ns/iter 1.05
JSON_Parse_Real 16694.60044642587 ns/iter 13877.11438788281 ns/iter 1.20
JSON_Parse_Decimal 15881.051339289139 ns/iter 14859.133928573392 ns/iter 1.07
JSON_Parse_Schema_ISO_Language 6518645.53571256 ns/iter 6533316.964285924 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 70.30453125000946 ns/iter 75.10520089287606 ns/iter 0.94
JSON_Equality_Helm_Chart_Lock 254.5092857142858 ns/iter 284.8296971058645 ns/iter 0.89
JSON_Divisible_By_Decimal 248.50624999999127 ns/iter 256.9692034360724 ns/iter 0.97
JSON_String_Equal/10 12.22683750000085 ns/iter 11.704243749999677 ns/iter 1.04
JSON_String_Equal/100 12.890566071425674 ns/iter 13.155882530551432 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 1.8798066981063757 ns/iter 2.068864285714004 ns/iter 0.91
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.538187220809776 ns/iter 11.396429687501097 ns/iter 1.10
JSON_String_Fast_Hash/10 3.7603344575703797 ns/iter 3.948288623122566 ns/iter 0.95
JSON_String_Fast_Hash/100 3.7608514218559974 ns/iter 3.9459771205357135 ns/iter 0.95
JSON_String_Key_Hash/10 4.0804545162148305 ns/iter 3.9067628348212122 ns/iter 1.04
JSON_String_Key_Hash/100 16.892041851167225 ns/iter 17.04551640371479 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 5.018380000001343 ns/iter 5.025438392857089 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.770779278980666 ns/iter 3.9494905427669758 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Large 3.76861981469957 ns/iter 3.877945870534662 ns/iter 0.97
Pointer_Object_Traverse 41.087603228854334 ns/iter 43.23816307908284 ns/iter 0.95
Pointer_Object_Try_Traverse 50.070129999994606 ns/iter 54.48549107143209 ns/iter 0.92
Pointer_Push_Back_Pointer_To_Weak_Pointer 177.58671278485784 ns/iter 160.46149553571152 ns/iter 1.11
Pointer_Walker_Schema_ISO_Language 13168550.000000322 ns/iter 13709530.000000997 ns/iter 0.96
Pointer_Maybe_Tracked_Deeply_Nested/0 2022017.0568566127 ns/iter 2117455.0000003884 ns/iter 0.95
Pointer_Maybe_Tracked_Deeply_Nested/1 3280762.745097999 ns/iter 3065381.2499993807 ns/iter 1.07
Pointer_Position_Tracker_Get_Deeply_Nested 611.7602955274269 ns/iter 623.8561383928547 ns/iter 0.98
Schema_Frame_WoT_References 10631151.56250305 ns/iter 10354840.624998474 ns/iter 1.03
Schema_Frame_OMC_References 48998593.333332494 ns/iter 45709653.3333394 ns/iter 1.07
Schema_Frame_OMC_Locations 46224382.35294205 ns/iter 42119688.23528878 ns/iter 1.10
Schema_Frame_ISO_Language_Locations 231780633.33330104 ns/iter 224485999.99999413 ns/iter 1.03
Schema_Frame_KrakenD_References 97151683.33332258 ns/iter 97662142.8571564 ns/iter 0.99
Schema_Frame_KrakenD_Reachable 578008699.9998275 ns/iter 546102599.9998128 ns/iter 1.06
Schema_Iterator_ISO_Language 5563870.999999382 ns/iter 5299881.000000823 ns/iter 1.05
Schema_Frame_ISO_Language_Locations_To_JSON 305570700.00008935 ns/iter 323586100.0000568 ns/iter 0.94
Schema_Tracker_ISO_Language 17808478.378380667 ns/iter 16245668.88888997 ns/iter 1.10
Schema_Tracker_ISO_Language_To_JSON 53395120.00000468 ns/iter 52621381.81817797 ns/iter 1.01
Schema_Format_ISO_Language_To_JSON 215883866.66667247 ns/iter 210520233.3334546 ns/iter 1.03
Schema_Bundle_Meta_2020_12 2979106.355943736 ns/iter 2851345.7627065876 ns/iter 1.04
Schema_Frame_Many_Resources_References 1589580600.0000904 ns/iter 1480939099.9998868 ns/iter 1.07
Alterschema_Check_Readibility_ISO_Language_Set_3 349166050.000008 ns/iter 329893699.9999569 ns/iter 1.06
Alterschema_Check_Readibility_OMC 63831263.63636455 ns/iter 63739280.00000433 ns/iter 1.00
Alterschema_Apply_Readibility_KrakenD 1073275299.9999775 ns/iter 1079507699.9997945 ns/iter 0.99
Alterschema_Check_Invalid_External_Refs 150432700.0000103 ns/iter 145216179.99998853 ns/iter 1.04
EditorSchema_ForEditor_EmbeddedResources 29544609.090914324 ns/iter 30941522.72728934 ns/iter 0.95
URITemplateRouter_Create 22124.434995140058 ns/iter 20938.381249997918 ns/iter 1.06
URITemplateRouter_Match 207.48396874999742 ns/iter 211.3280195835344 ns/iter 0.98
URITemplateRouter_Match_BasePath 240.75770750467245 ns/iter 244.64782983842036 ns/iter 0.98
URITemplateRouterView_Restore 32269.58035714996 ns/iter 24864.40357142783 ns/iter 1.30
URITemplateRouterView_Match 150.1385714285724 ns/iter 152.4260714285321 ns/iter 0.98
URITemplateRouterView_Match_BasePath 175.34299779851045 ns/iter 175.19195369587277 ns/iter 1.00
URITemplateRouterView_Arguments 484.7730546367068 ns/iter 451.79975000010586 ns/iter 1.07
HTML_Build_Table_100000 86879666.66666904 ns/iter 93178185.71428558 ns/iter 0.93
HTML_Render_Table_100000 8019577.777779179 ns/iter 8246187.999999771 ns/iter 0.97

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: 8c240df Previous: c91f056 Ratio
HTML_Build_Table_100000 62631929.45454483 ns/iter 69350056.20000538 ns/iter 0.90
HTML_Render_Table_100000 5202448.843282473 ns/iter 4982889.000001196 ns/iter 1.04
URITemplateRouter_Create 14561.140420055239 ns/iter 14172.678039837336 ns/iter 1.03
URITemplateRouter_Match 217.73500504418246 ns/iter 169.25987163448661 ns/iter 1.29
URITemplateRouter_Match_BasePath 248.97667812659466 ns/iter 203.7709140846599 ns/iter 1.22
URITemplateRouterView_Restore 6679.946764198962 ns/iter 6505.002875144644 ns/iter 1.03
URITemplateRouterView_Match 133.90364927003722 ns/iter 133.06015266799974 ns/iter 1.01
URITemplateRouterView_Match_BasePath 156.91599895950918 ns/iter 151.71250568933516 ns/iter 1.03
URITemplateRouterView_Arguments 489.52425260716973 ns/iter 460.75936184048305 ns/iter 1.06
EditorSchema_ForEditor_EmbeddedResources 14061309.599997003 ns/iter 14151998.612259358 ns/iter 0.99
Alterschema_Check_Readibility_ISO_Language_Set_3 209214365.99996924 ns/iter 206593680.66662863 ns/iter 1.01
Alterschema_Check_Readibility_OMC 34390449.57142522 ns/iter 34772537.44999871 ns/iter 0.99
Alterschema_Apply_Readibility_KrakenD 598619311.9999825 ns/iter 568953510.0000285 ns/iter 1.05
Alterschema_Check_Invalid_External_Refs 122842265.33332306 ns/iter 114002624.16668738 ns/iter 1.08
Schema_Frame_WoT_References 5374415.576922659 ns/iter 5487713.4453121815 ns/iter 0.98
Schema_Frame_OMC_References 22364287.5806461 ns/iter 23086348.433336448 ns/iter 0.97
Schema_Frame_OMC_Locations 20790330.55882546 ns/iter 21154942.63636141 ns/iter 0.98
Schema_Frame_ISO_Language_Locations 102535065.42858304 ns/iter 100462963.57141468 ns/iter 1.02
Schema_Frame_KrakenD_References 41087834.70587696 ns/iter 40512121.11764524 ns/iter 1.01
Schema_Frame_KrakenD_Reachable 553392767.0001049 ns/iter 579678973.9999895 ns/iter 0.95
Schema_Iterator_ISO_Language 2578753.9003688185 ns/iter 2431804.931159215 ns/iter 1.06
Schema_Frame_ISO_Language_Locations_To_JSON 210487436.33339956 ns/iter 230901088.33336368 ns/iter 0.91
Schema_Tracker_ISO_Language 4898832.902097739 ns/iter 4822825.136055262 ns/iter 1.02
Schema_Tracker_ISO_Language_To_JSON 22772239.41935576 ns/iter 22090893.562499046 ns/iter 1.03
Schema_Format_ISO_Language_To_JSON 109199241.16668274 ns/iter 110507982.3333502 ns/iter 0.99
Schema_Bundle_Meta_2020_12 1794032.948587149 ns/iter 1771726.7898752894 ns/iter 1.01
Schema_Frame_Many_Resources_References 376414794.49996495 ns/iter 387103025.99997705 ns/iter 0.97
Pointer_Object_Traverse 26.07813915640491 ns/iter 27.015600889163764 ns/iter 0.97
Pointer_Object_Try_Traverse 27.311940287165758 ns/iter 26.785339658327224 ns/iter 1.02
Pointer_Push_Back_Pointer_To_Weak_Pointer 159.06453206003806 ns/iter 185.50787595020148 ns/iter 0.86
Pointer_Walker_Schema_ISO_Language 3369086.3062200667 ns/iter 3645084.74619359 ns/iter 0.92
Pointer_Maybe_Tracked_Deeply_Nested/0 1592908.3908048044 ns/iter 1500248.9913788668 ns/iter 1.06
Pointer_Maybe_Tracked_Deeply_Nested/1 1864112.5952378856 ns/iter 1725320.9478910659 ns/iter 1.08
Pointer_Position_Tracker_Get_Deeply_Nested 416.52943695842714 ns/iter 448.5697652113806 ns/iter 0.93
JSON_Array_Of_Objects_Unique 414.20100885755306 ns/iter 413.6729643710765 ns/iter 1.00
JSON_Parse_1 7971.473775747617 ns/iter 7718.061724331383 ns/iter 1.03
JSON_Parse_Real 12326.895292466888 ns/iter 12080.956196324021 ns/iter 1.02
JSON_Parse_Decimal 18595.245906005694 ns/iter 16929.4528260839 ns/iter 1.10
JSON_Parse_Schema_ISO_Language 4670962.486666213 ns/iter 4659035.450330768 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 72.53044657839983 ns/iter 55.24907639104165 ns/iter 1.31
JSON_Equality_Helm_Chart_Lock 159.83588898146644 ns/iter 179.6366041295019 ns/iter 0.89
JSON_Divisible_By_Decimal 242.29514786841494 ns/iter 234.92363272043906 ns/iter 1.03
JSON_String_Equal/10 6.619997809290014 ns/iter 6.0520478192153035 ns/iter 1.09
JSON_String_Equal/100 7.25217449887516 ns/iter 6.778898638059656 ns/iter 1.07
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7430705797554258 ns/iter 0.711730343973828 ns/iter 1.04
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 27.989226475850117 ns/iter 23.200635546178752 ns/iter 1.21
JSON_String_Fast_Hash/10 1.5579232862092385 ns/iter 1.0553456214637316 ns/iter 1.48
JSON_String_Fast_Hash/100 1.557613226187875 ns/iter 1.0554877340180056 ns/iter 1.48
JSON_String_Key_Hash/10 1.2465571163451674 ns/iter 1.759509187307237 ns/iter 0.71
JSON_String_Key_Hash/100 12.439461697500741 ns/iter 14.788791397564971 ns/iter 0.84
JSON_Object_Defines_Miss_Same_Length 3.128084263080772 ns/iter 3.882824980093985 ns/iter 0.81
JSON_Object_Defines_Miss_Too_Small 3.424067669852704 ns/iter 3.519481495863986 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Large 3.4268958848461772 ns/iter 3.5172090745405624 ns/iter 0.97
Regex_Lower_S_Or_Upper_S_Asterisk 1.5574680137031436 ns/iter 1.4074019509806048 ns/iter 1.11
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5578658077820622 ns/iter 1.7598609677434573 ns/iter 0.89
Regex_Period_Asterisk 1.5562366984418528 ns/iter 1.7642410183623052 ns/iter 0.88
Regex_Group_Period_Asterisk_Group 1.556813647816198 ns/iter 1.7587886773591594 ns/iter 0.89
Regex_Period_Plus 1.5574053754347363 ns/iter 1.7619148716983961 ns/iter 0.88
Regex_Period 1.5581635764795807 ns/iter 1.7589865717697455 ns/iter 0.89
Regex_Caret_Period_Plus_Dollar 1.5562124404286204 ns/iter 1.7604490741940728 ns/iter 0.88
Regex_Caret_Group_Period_Plus_Group_Dollar 1.2451693737053013 ns/iter 1.410592693416694 ns/iter 0.88
Regex_Caret_Period_Asterisk_Dollar 1.247592072361982 ns/iter 1.4106770965145237 ns/iter 0.88
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.245371893572248 ns/iter 1.4124840019810994 ns/iter 0.88
Regex_Caret_X_Hyphen 12.78282175404499 ns/iter 11.947166457274644 ns/iter 1.07
Regex_Period_Md_Dollar 30.46303645302948 ns/iter 39.68025763666625 ns/iter 0.77
Regex_Caret_Slash_Period_Asterisk 4.668851621203278 ns/iter 4.219076002716696 ns/iter 1.11
Regex_Caret_Period_Range_Dollar 1.5573484279338587 ns/iter 1.4094481247313235 ns/iter 1.10
Regex_Nested_Backtrack 53.778567525347945 ns/iter 57.84391839106199 ns/iter 0.93

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