Skip to content

Implement a URI::is_uri[_reference] faster check method#2294

Merged
jviotti merged 4 commits intomainfrom
uri-check
Mar 17, 2026
Merged

Implement a URI::is_uri[_reference] faster check method#2294
jviotti merged 4 commits intomainfrom
uri-check

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Mar 17, 2026

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti marked this pull request as ready for review March 17, 2026 15:57
@augmentcode
Copy link

augmentcode bot commented Mar 17, 2026

🤖 Augment PR Summary

Summary: This PR adds fast, allocation-light URI syntax validation helpers alongside the existing full URI parser.

Changes:

  • Introduces URI::is_uri(std::string_view) to validate absolute URIs (scheme required) without constructing a URI object.
  • Introduces URI::is_uri_reference(std::string_view) to validate RFC 3986 URI-references (absolute or relative).
  • Refactors internal parsing helpers (parse_scheme, parse_authority, parse_path, etc.) into CheckOnly templates to share logic between “validate-only” and “parse+store” paths.
  • Adds extensive unit test coverage asserting expected behavior for absolute URIs vs URI-references across existing success/error cases.

Technical Notes: The check-only path skips component materialization/unescaping and wraps parsing in noexcept helpers that return false on any exception.

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

Fix All in Augment

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

Copy link

@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 3 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/uri/include/sourcemeta/core/uri.h">

<violation number="1" location="src/core/uri/include/sourcemeta/core/uri.h:472">
P3: Document this as URI-reference validation, not URI validation.</violation>
</file>

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

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: 88535f1 Previous: 7997b04 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.11096560733902 ns/iter 3.119816962872576 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1108523034245406 ns/iter 3.1097760789656554 ns/iter 1.00
Regex_Period_Asterisk 3.1112474306339264 ns/iter 3.1100769116781968 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.127940271506063 ns/iter 3.130099169921663 ns/iter 1.00
Regex_Period_Plus 3.101991613259919 ns/iter 3.0232015893220714 ns/iter 1.03
Regex_Period 2.8979475779727517 ns/iter 3.1105725792459555 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 3.112120499807929 ns/iter 3.1101701025730546 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1010274999353378 ns/iter 3.144877700415542 ns/iter 0.99
Regex_Caret_Period_Asterisk_Dollar 3.423061282152876 ns/iter 3.1106377878579994 ns/iter 1.10
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.422582793484833 ns/iter 3.1116457878661437 ns/iter 1.10
Regex_Caret_X_Hyphen 12.442101229843448 ns/iter 6.2251840030746965 ns/iter 2.00
Regex_Period_Md_Dollar 27.19264596843808 ns/iter 27.26419900590121 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 7.158581095664343 ns/iter 5.929018159020219 ns/iter 1.21
Regex_Caret_Period_Range_Dollar 3.7450749551854683 ns/iter 3.1127432285149763 ns/iter 1.20
Regex_Nested_Backtrack 49.35435946303202 ns/iter 48.870370820451065 ns/iter 1.01
JSON_Array_Of_Objects_Unique 428.8515824347847 ns/iter 436.2601442014702 ns/iter 0.98
JSON_Parse_1 6188.233295078039 ns/iter 6022.872158604101 ns/iter 1.03
JSON_Parse_Real 11175.245620485795 ns/iter 11091.808578643162 ns/iter 1.01
JSON_Parse_Decimal 11454.143766322866 ns/iter 11154.641977277808 ns/iter 1.03
JSON_Parse_Schema_ISO_Language 3613498.4455955164 ns/iter 3622482.3865978513 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 61.91968217636436 ns/iter 61.92589879021598 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 160.86766457880339 ns/iter 160.62832066593182 ns/iter 1.00
JSON_Divisible_By_Decimal 586.1039117061003 ns/iter 590.709838187603 ns/iter 0.99
JSON_String_Equal/10 6.234698366528198 ns/iter 7.159126292330258 ns/iter 0.87
JSON_String_Equal/100 6.872536513412445 ns/iter 6.857847858725118 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9346372089107646 ns/iter 0.9352202665580231 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.79725428160829 ns/iter 10.266020296360905 ns/iter 1.44
JSON_String_Fast_Hash/10 2.489296552317173 ns/iter 2.4897839004712385 ns/iter 1.00
JSON_String_Fast_Hash/100 2.4897311238290163 ns/iter 2.4881089100485148 ns/iter 1.00
JSON_String_Key_Hash/10 2.7134706665899064 ns/iter 2.1807353601291246 ns/iter 1.24
JSON_String_Key_Hash/100 9.020688219551717 ns/iter 6.534674091098177 ns/iter 1.38
JSON_Object_Defines_Miss_Same_Length 3.740624063863124 ns/iter 3.7383920442476897 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7373323499703615 ns/iter 3.736848427153441 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7378660967587796 ns/iter 3.745380709646379 ns/iter 1.00
Pointer_Object_Traverse 27.27594998596545 ns/iter 27.294995466108585 ns/iter 1.00
Pointer_Object_Try_Traverse 28.217696601031623 ns/iter 28.210990723522123 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 205.5875001580173 ns/iter 159.9572686300546 ns/iter 1.29
Pointer_Walker_Schema_ISO_Language 3012400.557939793 ns/iter 3715518.3031910732 ns/iter 0.81
Schema_Frame_WoT_References 4786227.157534204 ns/iter 4903053.258741155 ns/iter 0.98
Schema_Frame_OMC_References 19832894.657143436 ns/iter 19928264.05714173 ns/iter 1.00
Schema_Frame_OMC_Locations 19256887.189188804 ns/iter 18356655.28947354 ns/iter 1.05
Schema_Frame_ISO_Language_Locations 101453689.0000007 ns/iter 100535116.0000032 ns/iter 1.01
Schema_Frame_KrakenD_References 38834940.16666747 ns/iter 38129519.83333177 ns/iter 1.02
Schema_Frame_KrakenD_Reachable 582835867.0000852 ns/iter 563453654.9999894 ns/iter 1.03
Schema_Iterator_ISO_Language 2245611.4083599453 ns/iter 2293388.999999956 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 133049535.99998726 ns/iter 136688443.49999177 ns/iter 0.97
Schema_Tracker_ISO_Language 27548304.840001944 ns/iter 26004258.29629566 ns/iter 1.06
Schema_Tracker_ISO_Language_To_JSON 23975001.566668652 ns/iter 23042258.161287848 ns/iter 1.04
Schema_Format_ISO_Language_To_JSON 110017469.166678 ns/iter 106769739.3333257 ns/iter 1.03
Schema_Bundle_Meta_2020_12 1566532.2292107611 ns/iter 1589952.5158389076 ns/iter 0.99
Schema_Frame_Many_Resources_References 362919483.4999794 ns/iter 356058485.9999949 ns/iter 1.02
Alterschema_Check_Readibility_ISO_Language_Set_3 217684973.66667816 ns/iter 214727127.66668186 ns/iter 1.01
Alterschema_Check_Readibility_OMC 31886045.545454845 ns/iter 32238828.22726926 ns/iter 0.99
Alterschema_Apply_Readibility_KrakenD 604339294.0000558 ns/iter 585044223.9999439 ns/iter 1.03
EditorSchema_ForEditor_EmbeddedResources 13445040.826920917 ns/iter 13626156.725489207 ns/iter 0.99
URITemplateRouter_Create 17191.584205378746 ns/iter 17630.926341415958 ns/iter 0.98
URITemplateRouter_Match 175.84489594389203 ns/iter 175.46740257036888 ns/iter 1.00
URITemplateRouterView_Restore 6855.68108867318 ns/iter 6906.962248272569 ns/iter 0.99
URITemplateRouterView_Match 150.93190055135676 ns/iter 151.89795429133125 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: 88535f1 Previous: 7997b04 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.8022514949216832 ns/iter 2.2486446206591233 ns/iter 0.80
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.806147616449254 ns/iter 2.179573043118758 ns/iter 0.83
Regex_Period_Asterisk 1.7873951684957088 ns/iter 2.1804067169296086 ns/iter 0.82
Regex_Group_Period_Asterisk_Group 1.9012800663356537 ns/iter 2.3799269985136764 ns/iter 0.80
Regex_Period_Plus 2.2210497572271164 ns/iter 2.768894340807892 ns/iter 0.80
Regex_Period 2.099412350831994 ns/iter 2.7008449680199926 ns/iter 0.78
Regex_Caret_Period_Plus_Dollar 2.0404750289549884 ns/iter 3.046207479051932 ns/iter 0.67
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0438624405773496 ns/iter 2.8632287715178064 ns/iter 0.71
Regex_Caret_Period_Asterisk_Dollar 1.7230220071440872 ns/iter 2.2654267826838512 ns/iter 0.76
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.7304510642776458 ns/iter 2.304063954960205 ns/iter 0.75
Regex_Caret_X_Hyphen 8.449200888957293 ns/iter 7.451197079405683 ns/iter 1.13
Regex_Period_Md_Dollar 24.109842746732397 ns/iter 30.65153323082832 ns/iter 0.79
Regex_Caret_Slash_Period_Asterisk 5.274942326610463 ns/iter 6.412705282991946 ns/iter 0.82
Regex_Caret_Period_Range_Dollar 2.2392762389433933 ns/iter 2.4589395113159083 ns/iter 0.91
Regex_Nested_Backtrack 29.717871498813395 ns/iter 34.90833834651722 ns/iter 0.85
JSON_Array_Of_Objects_Unique 393.7739987210725 ns/iter 470.71681459395984 ns/iter 0.84
JSON_Parse_1 5248.506520053359 ns/iter 5992.2933622428145 ns/iter 0.88
JSON_Parse_Real 6719.827836201625 ns/iter 8916.071695285764 ns/iter 0.75
JSON_Parse_Decimal 8192.893343543341 ns/iter 11137.626270430117 ns/iter 0.74
JSON_Parse_Schema_ISO_Language 4193103.2848479487 ns/iter 5033644.522521721 ns/iter 0.83
JSON_Fast_Hash_Helm_Chart_Lock 62.071705086654134 ns/iter 81.89875059598255 ns/iter 0.76
JSON_Equality_Helm_Chart_Lock 149.0570461242084 ns/iter 178.89599552308772 ns/iter 0.83
JSON_Divisible_By_Decimal 503.64225269462827 ns/iter 578.2001348680201 ns/iter 0.87
JSON_String_Equal/10 7.477188477129793 ns/iter 8.616279373861792 ns/iter 0.87
JSON_String_Equal/100 6.590716889384602 ns/iter 9.184370889280165 ns/iter 0.72
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7734497586377054 ns/iter 1.0259361874688506 ns/iter 0.75
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.297572678078331 ns/iter 4.5306642953477185 ns/iter 0.73
JSON_String_Fast_Hash/10 2.3534419078778335 ns/iter 2.828147418037455 ns/iter 0.83
JSON_String_Fast_Hash/100 1.9219733766568121 ns/iter 2.4412671799227295 ns/iter 0.79
JSON_String_Key_Hash/10 1.293176062609388 ns/iter 1.8616769499050085 ns/iter 0.69
JSON_String_Key_Hash/100 2.0099605489183667 ns/iter 2.979433187515945 ns/iter 0.67
JSON_Object_Defines_Miss_Same_Length 2.26075223757235 ns/iter 2.908017735275732 ns/iter 0.78
JSON_Object_Defines_Miss_Too_Small 2.2892558610792686 ns/iter 2.8862777392460672 ns/iter 0.79
JSON_Object_Defines_Miss_Too_Large 2.2527079590594417 ns/iter 2.8097823417096777 ns/iter 0.80
Pointer_Object_Traverse 14.620280996234415 ns/iter 19.560465525452596 ns/iter 0.75
Pointer_Object_Try_Traverse 20.081184477496723 ns/iter 28.14519304739347 ns/iter 0.71
Pointer_Push_Back_Pointer_To_Weak_Pointer 145.90463014686384 ns/iter 218.47527550349284 ns/iter 0.67
Pointer_Walker_Schema_ISO_Language 3638391.6190480986 ns/iter 5582336.02150575 ns/iter 0.65
Schema_Frame_WoT_References 4932357.344632486 ns/iter 5796221.311476208 ns/iter 0.85
Schema_Frame_OMC_References 23878120.53571484 ns/iter 33483132.90476177 ns/iter 0.71
Schema_Frame_OMC_Locations 20778538.96773905 ns/iter 31414697.94999239 ns/iter 0.66
Schema_Frame_ISO_Language_Locations 69059513.88888651 ns/iter 102798520.83332723 ns/iter 0.67
Schema_Frame_KrakenD_References 47680741.66666641 ns/iter 61056266.59998506 ns/iter 0.78
Schema_Frame_KrakenD_Reachable 373288687.5000076 ns/iter 572178249.999979 ns/iter 0.65
Schema_Iterator_ISO_Language 1789789.2901558743 ns/iter 2755377.1553400047 ns/iter 0.65
Schema_Frame_ISO_Language_Locations_To_JSON 110932624.99998672 ns/iter 131694322.74997917 ns/iter 0.84
Schema_Tracker_ISO_Language 35472820.210531466 ns/iter 42435647.05883032 ns/iter 0.84
Schema_Tracker_ISO_Language_To_JSON 13498804.179998841 ns/iter 20796543.84210459 ns/iter 0.65
Schema_Format_ISO_Language_To_JSON 71874279.20007394 ns/iter 114770724.9999712 ns/iter 0.63
Schema_Bundle_Meta_2020_12 1073063.8642543377 ns/iter 1531007.9103301177 ns/iter 0.70
Schema_Frame_Many_Resources_References 251860083.33328876 ns/iter 395090458.499908 ns/iter 0.64
Alterschema_Check_Readibility_ISO_Language_Set_3 139864458.25003102 ns/iter 202019624.99999127 ns/iter 0.69
Alterschema_Check_Readibility_OMC 28899901.54545268 ns/iter 42199127.562511764 ns/iter 0.68
Alterschema_Apply_Readibility_KrakenD 500305291.4998989 ns/iter 624803000.0001563 ns/iter 0.80
EditorSchema_ForEditor_EmbeddedResources 9813928.77630888 ns/iter 14179469.042554706 ns/iter 0.69
URITemplateRouter_Create 16554.828809842133 ns/iter 23235.07223113585 ns/iter 0.71
URITemplateRouter_Match 157.88119651505016 ns/iter 209.42664961534422 ns/iter 0.75
URITemplateRouterView_Restore 13649.488014366487 ns/iter 18000.465303452354 ns/iter 0.76
URITemplateRouterView_Match 125.69478338182272 ns/iter 171.3650680351477 ns/iter 0.73

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

jviotti added 2 commits March 17, 2026 12:13
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti
Copy link
Member Author

jviotti commented Mar 17, 2026

augment review

@jviotti jviotti changed the title Implement a URI::check faster check method Implement a URI::is_uri[_reference] faster check method Mar 17, 2026
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 suggestion posted.

Fix All in Augment

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

} else {
const auto port_value = parse_port<false>(input, position);
if (port_value.has_value()) {
port = port_value.value();
Copy link

Choose a reason for hiding this comment

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

parse_port<false> yields an unsigned long, but it’s assigned into std::optional<std::uint32_t> port without any range check. Ports > UINT32_MAX will silently truncate/wrap and make the parsed URI (and recompose()) inconsistent with the input.

Severity: medium

Fix This in Augment

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

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

@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 2 files (changes from recent commits).

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/uri/parse.cc">

<violation number="1" location="src/core/uri/parse.cc:478">
P2: Apply the port overflow validation in `CheckOnly` mode too; otherwise `URI::is_uri[_reference]` can return true for URIs that `URI` parsing rejects.</violation>
</file>

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

@jviotti jviotti merged commit 881ade3 into main Mar 17, 2026
13 checks passed
@jviotti jviotti deleted the uri-check branch March 17, 2026 16:47
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: 88535f1 Previous: 7997b04 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.074629663359792 ns/iter 4.150228457967548 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.008491332127902 ns/iter 4.102029293040352 ns/iter 0.98
Regex_Period_Asterisk 4.263445259894735 ns/iter 4.732605814136355 ns/iter 0.90
Regex_Group_Period_Asterisk_Group 3.911026227677742 ns/iter 4.4050986945409 ns/iter 0.89
Regex_Period_Plus 4.157861607142013 ns/iter 4.431050457870527 ns/iter 0.94
Regex_Period 3.915041852679784 ns/iter 4.4087781249999125 ns/iter 0.89
Regex_Caret_Period_Plus_Dollar 3.775337611607706 ns/iter 4.111837230306641 ns/iter 0.92
Regex_Caret_Group_Period_Plus_Group_Dollar 4.25095834631593 ns/iter 3.787752850379193 ns/iter 1.12
Regex_Caret_Period_Asterisk_Dollar 3.9320290178565136 ns/iter 4.41914875000009 ns/iter 0.89
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.5535549274828018 ns/iter 4.116069293064548 ns/iter 0.86
Regex_Caret_X_Hyphen 6.8599832589301615 ns/iter 7.583992187498723 ns/iter 0.90
Regex_Period_Md_Dollar 35.39395836553636 ns/iter 35.8088589119951 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 6.570998214286305 ns/iter 7.237600446430291 ns/iter 0.91
Regex_Caret_Period_Range_Dollar 4.106163176975172 ns/iter 4.117441964285159 ns/iter 1.00
Regex_Nested_Backtrack 87.1954112859036 ns/iter 99.02280361505592 ns/iter 0.88
JSON_Array_Of_Objects_Unique 484.3095682764445 ns/iter 459.62378983286476 ns/iter 1.05
JSON_Parse_1 8809.364243909427 ns/iter 8914.51897321411 ns/iter 0.99
JSON_Parse_Real 14025.316404839386 ns/iter 16432.15476716473 ns/iter 0.85
JSON_Parse_Decimal 15357.493270118997 ns/iter 15471.035714286683 ns/iter 0.99
JSON_Parse_Schema_ISO_Language 6359673.333332062 ns/iter 6028406.25000007 ns/iter 1.05
JSON_Fast_Hash_Helm_Chart_Lock 58.741848214286364 ns/iter 57.333419642852895 ns/iter 1.02
JSON_Equality_Helm_Chart_Lock 283.4051558700054 ns/iter 260.09200000000226 ns/iter 1.09
JSON_Divisible_By_Decimal 1111.717539411679 ns/iter 1142.8432142858062 ns/iter 0.97
JSON_String_Equal/10 11.743448214287714 ns/iter 12.363990625001264 ns/iter 0.95
JSON_String_Equal/100 13.165266071431299 ns/iter 13.02443749999936 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 1.787972166375429 ns/iter 1.8907802695455422 ns/iter 0.95
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.927116071429314 ns/iter 12.596846428570935 ns/iter 0.95
JSON_String_Fast_Hash/10 3.218537137110329 ns/iter 3.178536160714681 ns/iter 1.01
JSON_String_Fast_Hash/100 3.287434223886723 ns/iter 3.1427535714284107 ns/iter 1.05
JSON_String_Key_Hash/10 3.901536272321593 ns/iter 4.0984464285718865 ns/iter 0.95
JSON_String_Key_Hash/100 17.316722875110734 ns/iter 16.634959821425962 ns/iter 1.04
JSON_Object_Defines_Miss_Same_Length 3.9934792928461027 ns/iter 4.1494151051237065 ns/iter 0.96
JSON_Object_Defines_Miss_Too_Small 3.9860141589045077 ns/iter 3.787209636093506 ns/iter 1.05
JSON_Object_Defines_Miss_Too_Large 4.979432000000088 ns/iter 5.06103800000119 ns/iter 0.98
Pointer_Object_Traverse 43.06433125000808 ns/iter 41.124441964284536 ns/iter 1.05
Pointer_Object_Try_Traverse 55.00849107142309 ns/iter 55.394375000007905 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 170.04886406582156 ns/iter 187.75476480499046 ns/iter 0.91
Pointer_Walker_Schema_ISO_Language 12073978.124998774 ns/iter 11342278.12499944 ns/iter 1.06
Schema_Frame_WoT_References 10228970.66666701 ns/iter 10022544.000000076 ns/iter 1.02
Schema_Frame_OMC_References 44213306.25000053 ns/iter 42813770.58824172 ns/iter 1.03
Schema_Frame_OMC_Locations 39792335.29411003 ns/iter 39057005.5555549 ns/iter 1.02
Schema_Frame_ISO_Language_Locations 205296800.00004193 ns/iter 196152066.66662744 ns/iter 1.05
Schema_Frame_KrakenD_References 90673928.57143985 ns/iter 99303214.28571784 ns/iter 0.91
Schema_Frame_KrakenD_Reachable 530225799.9999256 ns/iter 517503799.9999859 ns/iter 1.02
Schema_Iterator_ISO_Language 4419388.125000978 ns/iter 4284818.674698245 ns/iter 1.03
Schema_Frame_ISO_Language_Locations_To_JSON 284935550.0000001 ns/iter 258934333.3333242 ns/iter 1.10
Schema_Tracker_ISO_Language 46289906.66666747 ns/iter 46151026.66666643 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 54928890.90909226 ns/iter 52534809.99999738 ns/iter 1.05
Schema_Format_ISO_Language_To_JSON 200963233.3332926 ns/iter 197668000.0000215 ns/iter 1.02
Schema_Bundle_Meta_2020_12 2629260.714283126 ns/iter 2729218.4738900075 ns/iter 0.96
Schema_Frame_Many_Resources_References 1454111400.0001016 ns/iter 1490423699.9998374 ns/iter 0.98
Alterschema_Check_Readibility_ISO_Language_Set_3 316705400.0000462 ns/iter 324386249.999975 ns/iter 0.98
Alterschema_Check_Readibility_OMC 60054109.09090807 ns/iter 60225790.00000405 ns/iter 1.00
Alterschema_Apply_Readibility_KrakenD 990329199.9999056 ns/iter 988497600.0000733 ns/iter 1.00
EditorSchema_ForEditor_EmbeddedResources 27370195.99998348 ns/iter 27335273.076906003 ns/iter 1.00
URITemplateRouter_Create 20951.253554640003 ns/iter 23147.98272340657 ns/iter 0.91
URITemplateRouter_Match 211.41243750001595 ns/iter 214.7240000000039 ns/iter 0.98
URITemplateRouterView_Restore 24441.329895874744 ns/iter 31400.547096992323 ns/iter 0.78
URITemplateRouterView_Match 153.2125177137313 ns/iter 172.6850511326032 ns/iter 0.89

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: 88535f1 Previous: 7997b04 Ratio
URITemplateRouter_Create 14557.276259265125 ns/iter 14226.352574197343 ns/iter 1.02
URITemplateRouter_Match 178.51979986905275 ns/iter 161.26550574930286 ns/iter 1.11
URITemplateRouterView_Restore 7969.179453212415 ns/iter 7961.989820406787 ns/iter 1.00
URITemplateRouterView_Match 128.31840607915257 ns/iter 130.02328311797336 ns/iter 0.99
EditorSchema_ForEditor_EmbeddedResources 14098945.729164332 ns/iter 13642318.8823488 ns/iter 1.03
Alterschema_Check_Readibility_ISO_Language_Set_3 220066798.3333157 ns/iter 209277970.33338416 ns/iter 1.05
Alterschema_Check_Readibility_OMC 37618322.42104758 ns/iter 33352701.57143506 ns/iter 1.13
Alterschema_Apply_Readibility_KrakenD 695849727.9997573 ns/iter 599388257.9998627 ns/iter 1.16
Schema_Frame_WoT_References 5239688.300751136 ns/iter 5162897.286764438 ns/iter 1.01
Schema_Frame_OMC_References 24006329.758619893 ns/iter 21229886.606058493 ns/iter 1.13
Schema_Frame_OMC_Locations 22027273.129028358 ns/iter 20198506.82352974 ns/iter 1.09
Schema_Frame_ISO_Language_Locations 110098043.33336131 ns/iter 103453699.50001289 ns/iter 1.06
Schema_Frame_KrakenD_References 46174637.400008574 ns/iter 39457833.00000332 ns/iter 1.17
Schema_Frame_KrakenD_Reachable 678467253.9999974 ns/iter 588583605.0001671 ns/iter 1.15
Schema_Iterator_ISO_Language 2494297.114695349 ns/iter 2391078.8847457543 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 265612392.33334768 ns/iter 250367211.99997675 ns/iter 1.06
Schema_Tracker_ISO_Language 32817043.571434453 ns/iter 29407873.083329152 ns/iter 1.12
Schema_Tracker_ISO_Language_To_JSON 32851627.909084614 ns/iter 28030096.200000115 ns/iter 1.17
Schema_Format_ISO_Language_To_JSON 116566667.49998598 ns/iter 109025643.3333631 ns/iter 1.07
Schema_Bundle_Meta_2020_12 1737190.3258620237 ns/iter 1714875.8627339543 ns/iter 1.01
Schema_Frame_Many_Resources_References 404493969.99997586 ns/iter 377259903.99997044 ns/iter 1.07
Pointer_Object_Traverse 26.7870966631856 ns/iter 27.783254291392723 ns/iter 0.96
Pointer_Object_Try_Traverse 27.44112441163008 ns/iter 27.41308130295583 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 134.1953897780504 ns/iter 165.0472964054767 ns/iter 0.81
Pointer_Walker_Schema_ISO_Language 3628781.590908726 ns/iter 3473355.5922327284 ns/iter 1.04
JSON_Array_Of_Objects_Unique 371.70289998052175 ns/iter 384.92608089492444 ns/iter 0.97
JSON_Parse_1 8507.492891624961 ns/iter 8438.712756531299 ns/iter 1.01
JSON_Parse_Real 12751.514037879588 ns/iter 13741.232017240221 ns/iter 0.93
JSON_Parse_Decimal 18455.36696428533 ns/iter 18045.9835735338 ns/iter 1.02
JSON_Parse_Schema_ISO_Language 4871834.258741653 ns/iter 4800516.794520487 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 60.469034675966235 ns/iter 62.75490503304761 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 157.8712820400879 ns/iter 158.26337629867623 ns/iter 1.00
JSON_Divisible_By_Decimal 575.4925522010363 ns/iter 595.2943315742945 ns/iter 0.97
JSON_String_Equal/10 6.351046909251518 ns/iter 6.639081900604382 ns/iter 0.96
JSON_String_Equal/100 6.977240384268159 ns/iter 7.248079196687834 ns/iter 0.96
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7467325246589096 ns/iter 0.623518040510038 ns/iter 1.20
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 32.96767002905413 ns/iter 32.970212008299015 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9347935234648714 ns/iter 0.9340800819828622 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9345328498346501 ns/iter 0.9334126384298044 ns/iter 1.00
JSON_String_Key_Hash/10 1.2474496953513465 ns/iter 1.5573231828005083 ns/iter 0.80
JSON_String_Key_Hash/100 12.444962295748825 ns/iter 12.452047367240125 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.424178777589502 ns/iter 3.424147247063242 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.4290574482095977 ns/iter 3.127720516554099 ns/iter 1.10
JSON_Object_Defines_Miss_Too_Large 3.4438202769679407 ns/iter 3.112577703707643 ns/iter 1.11
Regex_Lower_S_Or_Upper_S_Asterisk 1.5576470227640635 ns/iter 1.2439275769798117 ns/iter 1.25
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5565470887648418 ns/iter 1.5571491811279043 ns/iter 1.00
Regex_Period_Asterisk 1.557341577874272 ns/iter 1.5586367423516994 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 1.5561430815847677 ns/iter 1.5570528466756195 ns/iter 1.00
Regex_Period_Plus 1.5596007313555336 ns/iter 1.5554338397337955 ns/iter 1.00
Regex_Period 1.5578241326814382 ns/iter 1.5558346862086836 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.5574394479880151 ns/iter 1.556523949584088 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 1.250631370526487 ns/iter 1.5562735710128124 ns/iter 0.80
Regex_Caret_Period_Asterisk_Dollar 1.2463396377447684 ns/iter 1.5576202814086788 ns/iter 0.80
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.2449520795604372 ns/iter 1.2455557344810926 ns/iter 1.00
Regex_Caret_X_Hyphen 12.750982589596884 ns/iter 12.123989100971283 ns/iter 1.05
Regex_Period_Md_Dollar 29.979710263336763 ns/iter 30.13514949347563 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 4.6674311521603284 ns/iter 4.771941980607611 ns/iter 0.98
Regex_Caret_Period_Range_Dollar 1.5653591470300223 ns/iter 1.5563844033003564 ns/iter 1.01
Regex_Nested_Backtrack 49.649749424252306 ns/iter 51.12485836767524 ns/iter 0.97

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