Skip to content

Commit

Permalink
Add a performance-related TODO on SchemaFrame (#1536)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Feb 8, 2025
1 parent 57fcc3c commit af25665
Showing 1 changed file with 3 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,9 @@ class SOURCEMETA_CORE_JSONSCHEMA_EXPORT SchemaFrame {
Pointer relative_pointer;
std::string dialect;
std::string base_dialect;
// TODO: Support only populating these when needed, given
// how expensive they can be, by taking more options on the
// analyse method
std::vector<PointerTemplate> instance_locations;
std::vector<std::reference_wrapper<const LocationKey>> destination_of;
};
Expand Down

5 comments on commit af25665

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Benchmark suite Current: af25665 Previous: 57fcc3c Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.208021862417692 ns/iter 2.21324512511772 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.2187659337827963 ns/iter 2.2251830571098585 ns/iter 1.00
Regex_Period_Asterisk 2.19349554413125 ns/iter 2.1996595834021435 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 2.1922307558560457 ns/iter 2.195957790150231 ns/iter 1.00
Regex_Period_Plus 2.7987754633697697 ns/iter 2.7959413464432514 ns/iter 1.00
Regex_Period 2.7974824678243695 ns/iter 2.7976534236115342 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.7124137146987755 ns/iter 2.797634207908262 ns/iter 0.97
Regex_Caret_Group_Period_Plus_Group_Dollar 2.494198222495843 ns/iter 2.8039844625621555 ns/iter 0.89
Regex_Caret_Period_Asterisk_Dollar 2.48709447503305 ns/iter 3.434365872892736 ns/iter 0.72
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.487580809084268 ns/iter 3.4169790603660637 ns/iter 0.73
Regex_Caret_X_Hyphen 12.557450078399288 ns/iter 13.07299164923992 ns/iter 0.96
Regex_Period_Md_Dollar 81.48550054729482 ns/iter 82.51872464857378 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 6.836807689798791 ns/iter 5.905009555708624 ns/iter 1.16
Regex_Caret_Period_Range_Dollar 4.049755814944138 ns/iter 4.040613152934997 ns/iter 1.00
Regex_Nested_Backtrack 498.97766416008653 ns/iter 505.45061869816806 ns/iter 0.99
JSON_Array_Of_Objects_Unique 395.71622325758597 ns/iter 403.6923991963758 ns/iter 0.98
JSON_Parse_1 30264.86893811883 ns/iter 30596.335602094856 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 59.27372464286649 ns/iter 59.36953047485912 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 151.28876435722154 ns/iter 153.47666621524831 ns/iter 0.99
JSON_String_Equal/10 6.222311946726939 ns/iter 6.224609503583112 ns/iter 1.00
JSON_String_Equal/100 6.846443829393279 ns/iter 6.845588029948627 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9424937912188245 ns/iter 0.9356475160468047 ns/iter 1.01
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.605334343782243 ns/iter 10.260302845318373 ns/iter 1.42
JSON_String_Fast_Hash/10 2.4868351378471973 ns/iter 2.488111621706666 ns/iter 1.00
JSON_String_Fast_Hash/100 2.488821343837131 ns/iter 2.4877731448465417 ns/iter 1.00
JSON_String_Key_Hash/10 2.690990453268772 ns/iter 2.1786228836056485 ns/iter 1.24
JSON_String_Key_Hash/100 1.8683964563703193 ns/iter 1.9220461890875142 ns/iter 0.97
JSON_Object_Defines_Miss_Same_Length 3.736391702590776 ns/iter 3.733847649333964 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.73749015385384 ns/iter 3.7342949170925452 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7490742044325898 ns/iter 3.737895489695806 ns/iter 1.00
Pointer_Object_Traverse 45.66784182641732 ns/iter 44.26496525805417 ns/iter 1.03
Pointer_Object_Try_Traverse 52.340079814325634 ns/iter 52.38939811563776 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 308.4121688287477 ns/iter 289.59946127889015 ns/iter 1.06

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Benchmark suite Current: af25665 Previous: 57fcc3c Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.6005033090280567 ns/iter 1.9583521831521484 ns/iter 0.82
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5819935659271185 ns/iter 1.830709124421011 ns/iter 0.86
Regex_Period_Asterisk 1.6034357876071554 ns/iter 1.705627107657228 ns/iter 0.94
Regex_Group_Period_Asterisk_Group 1.5933444494088242 ns/iter 1.7388175106915464 ns/iter 0.92
Regex_Period_Plus 1.907692384950933 ns/iter 2.0318569340841277 ns/iter 0.94
Regex_Period 1.9056890528671944 ns/iter 2.0425598744843154 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 1.915318253234105 ns/iter 2.021926284396524 ns/iter 0.95
Regex_Caret_Group_Period_Plus_Group_Dollar 1.911938249642208 ns/iter 2.0144081425910807 ns/iter 0.95
Regex_Caret_Period_Asterisk_Dollar 1.5762425316873254 ns/iter 1.6916195311815498 ns/iter 0.93
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5727729378020239 ns/iter 1.7093379850139825 ns/iter 0.92
Regex_Caret_X_Hyphen 6.604917572526963 ns/iter 7.117970028557164 ns/iter 0.93
Regex_Period_Md_Dollar 69.21095723712322 ns/iter 73.24459238882905 ns/iter 0.94
Regex_Caret_Slash_Period_Asterisk 5.037225277585012 ns/iter 5.722917550721413 ns/iter 0.88
Regex_Caret_Period_Range_Dollar 2.2054844942210274 ns/iter 2.42459367704766 ns/iter 0.91
Regex_Nested_Backtrack 730.3327330798342 ns/iter 800.5740766964577 ns/iter 0.91
JSON_Array_Of_Objects_Unique 356.11771721210295 ns/iter 358.2890336749976 ns/iter 0.99
JSON_Parse_1 22697.92309938579 ns/iter 22794.1444949651 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 50.26750604403888 ns/iter 51.22781438829177 ns/iter 0.98
JSON_Equality_Helm_Chart_Lock 125.85440214778711 ns/iter 130.49880672428787 ns/iter 0.96
JSON_String_Equal/10 7.983238167711032 ns/iter 7.890035875344331 ns/iter 1.01
JSON_String_Equal/100 6.308694876982772 ns/iter 6.299543646788227 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3144628144093694 ns/iter 0.3368126942643862 ns/iter 0.93
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 2.957314153188983 ns/iter 3.3066860352590774 ns/iter 0.89
JSON_String_Fast_Hash/10 1.5742594198333677 ns/iter 1.8412583212084255 ns/iter 0.85
JSON_String_Fast_Hash/100 1.8833454397937255 ns/iter 2.0412385797790193 ns/iter 0.92
JSON_String_Key_Hash/10 1.2551009747921291 ns/iter 1.3514294298336818 ns/iter 0.93
JSON_String_Key_Hash/100 1.2580400366286333 ns/iter 1.3249724235507416 ns/iter 0.95
JSON_Object_Defines_Miss_Same_Length 2.2074019202742785 ns/iter 2.3231596721552847 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Small 2.212362682226433 ns/iter 2.3893554429878274 ns/iter 0.93
JSON_Object_Defines_Miss_Too_Large 2.209355162663776 ns/iter 2.380200270161164 ns/iter 0.93
Pointer_Object_Traverse 17.015462267744606 ns/iter 18.234154126765166 ns/iter 0.93
Pointer_Object_Try_Traverse 21.72096060644557 ns/iter 24.206661773253096 ns/iter 0.90
Pointer_Push_Back_Pointer_To_Weak_Pointer 173.15569965109046 ns/iter 184.4533184468813 ns/iter 0.94

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Benchmark suite Current: af25665 Previous: 57fcc3c Ratio
Pointer_Object_Traverse 45.72913939315886 ns/iter 49.256180970175286 ns/iter 0.93
Pointer_Object_Try_Traverse 26.160012567511075 ns/iter 26.125727781465667 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 145.2647694086727 ns/iter 145.1145543983442 ns/iter 1.00
JSON_Array_Of_Objects_Unique 409.4451619196503 ns/iter 408.92338069490216 ns/iter 1.00
JSON_Parse_1 33207.55535528025 ns/iter 33007.03525959448 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 62.82689855947769 ns/iter 62.741296493475176 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 152.1986948167015 ns/iter 149.33441798723186 ns/iter 1.02
JSON_String_Equal/10 6.3562416380697995 ns/iter 6.34210158483025 ns/iter 1.00
JSON_String_Equal/100 6.963132804237056 ns/iter 6.958076050521689 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9339321979351424 ns/iter 0.933705074484109 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.28745929080262 ns/iter 14.28846835274366 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9342374574368694 ns/iter 0.9341127683816727 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9321220771214092 ns/iter 0.9331731049130984 ns/iter 1.00
JSON_String_Key_Hash/10 1.6728827664919286 ns/iter 1.6717016793052244 ns/iter 1.00
JSON_String_Key_Hash/100 1.9849201451053429 ns/iter 1.9833137786276849 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4864207869632198 ns/iter 2.4859760607554455 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.4938347768095053 ns/iter 2.4870298331266616 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.1072256198248587 ns/iter 3.1075878883694825 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.416893860668354 ns/iter 3.422624259221597 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.4178798542064843 ns/iter 3.4227808760443073 ns/iter 1.00
Regex_Period_Asterisk 3.4174134229406805 ns/iter 3.421785562744786 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.4172123606485476 ns/iter 3.4222175776811334 ns/iter 1.00
Regex_Period_Plus 3.7311665895237627 ns/iter 3.730066459655144 ns/iter 1.00
Regex_Period 3.732884738996201 ns/iter 3.7338566738512338 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.7824330975082474 ns/iter 3.7319398350148667 ns/iter 1.01
Regex_Caret_Group_Period_Plus_Group_Dollar 3.7347743790343557 ns/iter 3.730839562146845 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 4.680461129826511 ns/iter 4.660697710071137 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.659718631298085 ns/iter 4.66204628334616 ns/iter 1.00
Regex_Caret_X_Hyphen 12.42730900911117 ns/iter 13.196786071260854 ns/iter 0.94
Regex_Period_Md_Dollar 90.60116152432713 ns/iter 92.53485078169291 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 8.087220142700042 ns/iter 8.080343319211822 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.663859804715464 ns/iter 4.659931802504431 ns/iter 1.00
Regex_Nested_Backtrack 841.0069246840136 ns/iter 842.9729777126599 ns/iter 1.00

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Benchmark suite Current: af25665 Previous: 57fcc3c Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 7.169602678572013 ns/iter 6.833373883929588 ns/iter 1.05
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.847720982143812 ns/iter 6.853975446429977 ns/iter 1.00
Regex_Period_Asterisk 7.071218749999783 ns/iter 6.8539308035704085 ns/iter 1.03
Regex_Group_Period_Asterisk_Group 6.898632812501709 ns/iter 7.0714321428572 ns/iter 0.98
Regex_Period_Plus 7.150731026787887 ns/iter 7.429651306119565 ns/iter 0.96
Regex_Period 7.211098214286591 ns/iter 7.272991071428489 ns/iter 0.99
Regex_Caret_Period_Plus_Dollar 7.329225446428872 ns/iter 7.231762276784792 ns/iter 1.01
Regex_Caret_Group_Period_Plus_Group_Dollar 7.591810680393215 ns/iter 7.331421874999324 ns/iter 1.04
Regex_Caret_Period_Asterisk_Dollar 6.865803987206296 ns/iter 6.9932669642846745 ns/iter 0.98
Regex_Caret_Group_Period_Asterisk_Group_Dollar 7.357767857144434 ns/iter 7.133985236007083 ns/iter 1.03
Regex_Caret_X_Hyphen 11.835117187498412 ns/iter 14.259183035717019 ns/iter 0.83
Regex_Period_Md_Dollar 150.0962946428684 ns/iter 150.47093301469658 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 10.748451562498929 ns/iter 10.518417187501683 ns/iter 1.02
Regex_Caret_Period_Range_Dollar 7.7571066617990665 ns/iter 7.768389508928664 ns/iter 1.00
Regex_Nested_Backtrack 620.0021428570933 ns/iter 608.0383035712852 ns/iter 1.02
JSON_Array_Of_Objects_Unique 490.08069999990767 ns/iter 488.5185802827047 ns/iter 1.00
JSON_Parse_1 80089.5535714322 ns/iter 81223.21428573848 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 63.04024999999618 ns/iter 67.10326999998415 ns/iter 0.94
JSON_Equality_Helm_Chart_Lock 183.56037353214683 ns/iter 186.25330234407423 ns/iter 0.99
JSON_String_Equal/10 8.97498478136031 ns/iter 8.992549107144246 ns/iter 1.00
JSON_String_Equal/100 9.932837902083557 ns/iter 9.937556205634342 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1646293749995493 ns/iter 2.168285625000266 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.732678026341766 ns/iter 14.814677132938408 ns/iter 0.99
JSON_String_Fast_Hash/10 4.051360632234062 ns/iter 4.0800926339290555 ns/iter 0.99
JSON_String_Fast_Hash/100 4.052011718749883 ns/iter 4.028599025051284 ns/iter 1.01
JSON_String_Key_Hash/10 8.043931919642842 ns/iter 7.920802455357392 ns/iter 1.02
JSON_String_Key_Hash/100 4.024076882186663 ns/iter 4.026559650047645 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.717636421932891 ns/iter 3.7157105290788732 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 4.959002880571053 ns/iter 4.965528795751675 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.405209536570648 ns/iter 3.4073329740734013 ns/iter 1.00
Pointer_Object_Traverse 55.46846428570364 ns/iter 48.80525999999463 ns/iter 1.14
Pointer_Object_Try_Traverse 67.4814843750125 ns/iter 67.57286830357653 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 182.18157876623832 ns/iter 160.16683661831414 ns/iter 1.14

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/gcc)

Benchmark suite Current: af25665 Previous: 57fcc3c Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.942308208049288 ns/iter 1.8825880041351961 ns/iter 1.03
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.971949163589552 ns/iter 1.8791688169100427 ns/iter 1.05
Regex_Period_Asterisk 1.9601821664321628 ns/iter 1.8800244099838497 ns/iter 1.04
Regex_Group_Period_Asterisk_Group 2.0070165203141896 ns/iter 1.8814021322990038 ns/iter 1.07
Regex_Period_Plus 1.6520101143195736 ns/iter 1.5673359340626543 ns/iter 1.05
Regex_Period 1.6480848700237498 ns/iter 1.5689924643498037 ns/iter 1.05
Regex_Caret_Period_Plus_Dollar 1.645262758229758 ns/iter 1.5708249071566387 ns/iter 1.05
Regex_Caret_Group_Period_Plus_Group_Dollar 1.638210127874993 ns/iter 1.5727256430746848 ns/iter 1.04
Regex_Caret_Period_Asterisk_Dollar 1.913669707771042 ns/iter 1.8984326850382653 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.8821126741404421 ns/iter 1.881541592780166 ns/iter 1.00
Regex_Caret_X_Hyphen 5.984971832891739 ns/iter 6.126027284935777 ns/iter 0.98
Regex_Period_Md_Dollar 68.55810494357878 ns/iter 68.04899674887409 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 4.403668350466067 ns/iter 4.401628243309832 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.8910105821192318 ns/iter 1.8825292383059935 ns/iter 1.00
Regex_Nested_Backtrack 823.6459975707054 ns/iter 820.9803815524178 ns/iter 1.00
JSON_Array_Of_Objects_Unique 211.7466776304995 ns/iter 210.5165797936312 ns/iter 1.01
JSON_Parse_1 23493.3565616984 ns/iter 22922.03221298376 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 27.36812464669376 ns/iter 23.766888111230237 ns/iter 1.15
JSON_Equality_Helm_Chart_Lock 122.41537661218275 ns/iter 115.29711452462577 ns/iter 1.06
JSON_String_Equal/10 5.522329764169248 ns/iter 5.424336860497339 ns/iter 1.02
JSON_String_Equal/100 5.338538446069286 ns/iter 5.1069767830157495 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7490413893868775 ns/iter 0.7453677549612214 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.4540067915532937 ns/iter 3.5093959020381402 ns/iter 0.98
JSON_String_Fast_Hash/10 1.8922922417019556 ns/iter 1.9267548735634323 ns/iter 0.98
JSON_String_Fast_Hash/100 1.8938424291329004 ns/iter 1.9098343199353254 ns/iter 0.99
JSON_String_Key_Hash/10 1.4465351338172594 ns/iter 1.4459711549364933 ns/iter 1.00
JSON_String_Key_Hash/100 1.9231579028533623 ns/iter 1.9573203433725286 ns/iter 0.98
JSON_Object_Defines_Miss_Same_Length 1.726076138951353 ns/iter 1.742340504214379 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 1.8838163231790193 ns/iter 1.9021659557584234 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 1.7251743593506008 ns/iter 1.7245856715080061 ns/iter 1.00
Pointer_Object_Traverse 52.34051195706453 ns/iter 52.280223216798596 ns/iter 1.00
Pointer_Object_Try_Traverse 35.740934884215875 ns/iter 35.934347639679565 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 154.1202827052081 ns/iter 157.9992440769337 ns/iter 0.98

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

Please sign in to comment.