Skip to content

Add a few extra convenience methods around GenericPointer#2627

Merged
jviotti merged 1 commit into
mainfrom
pointer-misc
Jul 16, 2026
Merged

Add a few extra convenience methods around GenericPointer#2627
jviotti merged 1 commit into
mainfrom
pointer-misc

Conversation

@jviotti

@jviotti jviotti commented Jul 16, 2026

Copy link
Copy Markdown
Member

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

Review in cubic

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

augmentcode Bot commented Jul 16, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR adds a couple of convenience helpers to GenericPointer to make prefix comparisons easier and more expressive.

Changes:

  • Added `GenericPointer::shares_prefix(other, prefix_size)` to compare equality of the first N tokens between two pointers.
  • Added `GenericPointer::starts_with_strict(prefix)` to check prefix membership while excluding the equal-pointer case.
  • Updated the header’s iterator include to cover `std::next` usage.
  • Added dedicated unit tests for both new APIs.
  • Registered the new test files in the jsonpointer test CMake target.

Technical Notes: Both helpers are implemented without allocating new pointers and rely on token-wise comparison over the underlying token container.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review completed. No suggestions at this time.

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

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: a92b9a4 Previous: 2060a4f Ratio
JOSE_VerifySignature_RS256 22615.698882734257 ns/iter 28648.930226835066 ns/iter 0.79
JOSE_VerifySignature_ES512 576372.6118421212 ns/iter 748940.6128341819 ns/iter 0.77
GZIP_Compress_ISO_Language_Set_3_Locations 36734134.2631562 ns/iter 45748634.46666768 ns/iter 0.80
GZIP_Decompress_ISO_Language_Set_3_Locations 4388424.162500115 ns/iter 4690692.912751558 ns/iter 0.94
GZIP_Compress_ISO_Language_Set_3_Schema 2041389.1574345028 ns/iter 2662421.5855513406 ns/iter 0.77
GZIP_Decompress_ISO_Language_Set_3_Schema 380049.0021739076 ns/iter 322479.43224867404 ns/iter 1.18
HTML_Build_Table_100000 62263838.18181024 ns/iter 79810590.44444312 ns/iter 0.78
HTML_Render_Table_100000 2075111.8029852817 ns/iter 2009152.4166665638 ns/iter 1.03
JSONLD_Catalog_Annotation_List_Populate 1316186.3632958967 ns/iter 1531398.7647057981 ns/iter 0.86
JSONLD_Catalog_Materialize 6847938.072164934 ns/iter 7867832.144444896 ns/iter 0.87
JSONL_Parse_Large 13981378.820001282 ns/iter 15499772.75555597 ns/iter 0.90
JSONL_Parse_Large_GZIP 15405992.822221983 ns/iter 17101526.219512492 ns/iter 0.90
URITemplateRouter_Create 30682.383283657626 ns/iter 34894.0157947174 ns/iter 0.88
URITemplateRouter_Match 154.49797188556 ns/iter 170.358148382477 ns/iter 0.91
URITemplateRouter_Match_BasePath 177.54917239628801 ns/iter 195.46609202514009 ns/iter 0.91
URITemplateRouterView_Restore 8538.887716159854 ns/iter 11641.744147836422 ns/iter 0.73
URITemplateRouterView_Match 126.0158476297916 ns/iter 147.53069165467028 ns/iter 0.85
URITemplateRouterView_Match_BasePath 145.8275608012339 ns/iter 165.24468580531044 ns/iter 0.88
URITemplateRouterView_Arguments 467.9233130702639 ns/iter 537.5746700688522 ns/iter 0.87
JSONPath_Descendant_Filter_Nested 1711.800710754392 ns/iter 2147.3139836197997 ns/iter 0.80
Pointer_Object_Traverse 30.228217898047685 ns/iter 38.17042014201655 ns/iter 0.79
Pointer_Object_Try_Traverse 25.32071767514548 ns/iter 30.397859503038745 ns/iter 0.83
Pointer_Push_Back_Pointer_To_Weak_Pointer 161.32953629486693 ns/iter 183.89643111447288 ns/iter 0.88
Pointer_Walker_Schema_ISO_Language 2869011.2520328374 ns/iter 3182410.8909089235 ns/iter 0.90
Pointer_Maybe_Tracked_Deeply_Nested/0 1891264.6273971926 ns/iter 2237529.840255801 ns/iter 0.85
Pointer_Maybe_Tracked_Deeply_Nested/1 1749293.55970148 ns/iter 1902971.8478261977 ns/iter 0.92
Pointer_Position_Tracker_Get_Deeply_Nested 516.7806214662353 ns/iter 509.3048302424369 ns/iter 1.01
JSON_Array_Of_Objects_Unique 453.8225770522447 ns/iter 517.1162890000005 ns/iter 0.88
JSON_Parse_1 10105.561040684868 ns/iter 11444.548881383575 ns/iter 0.88
JSON_Parse_Real 7772.150403729895 ns/iter 9014.64246649186 ns/iter 0.86
JSON_Parse_Decimal 12945.702544754711 ns/iter 12882.688814144914 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 6803640.264705586 ns/iter 7799266.831460791 ns/iter 0.87
JSON_Parse_Integer 5905.044537787012 ns/iter 6861.799782298118 ns/iter 0.86
JSON_Parse_String_NonSSO_Plain 12220.934282125385 ns/iter 14305.363425076603 ns/iter 0.85
JSON_Parse_String_SSO_Plain 5082.65673755756 ns/iter 5813.404106018995 ns/iter 0.87
JSON_Parse_String_Escape_Heavy 25744.005152551792 ns/iter 28018.313542039992 ns/iter 0.92
JSON_Parse_Object_Short_Keys 14421.515585182158 ns/iter 16997.037347821028 ns/iter 0.85
JSON_Parse_Object_Scalar_Properties 7530.038584595379 ns/iter 8593.268992076737 ns/iter 0.88
JSON_Parse_Object_Array_Properties 12197.309906210385 ns/iter 15069.611981290722 ns/iter 0.81
JSON_Parse_Object_Object_Properties 12643.725309753112 ns/iter 14169.02110497794 ns/iter 0.89
JSON_Parse_Nested_Containers 103212.12305871281 ns/iter 119443.95500084574 ns/iter 0.86
JSON_From_String_Copy 17.92434138008351 ns/iter 23.360682326473043 ns/iter 0.77
JSON_From_String_Temporary 15.046154116077654 ns/iter 19.008642911736946 ns/iter 0.79
JSON_Number_To_Double 21.827231992441654 ns/iter 23.432177716330713 ns/iter 0.93
JSON_Object_At_Last_Key/8 5.922973658628619 ns/iter 7.3981027309085245 ns/iter 0.80
JSON_Object_At_Last_Key/32 24.5028055095743 ns/iter 27.51738586089187 ns/iter 0.89
JSON_Object_At_Last_Key/128 87.23810597904156 ns/iter 106.40617259028538 ns/iter 0.82
JSON_Object_At_Last_Key/512 390.0142512957343 ns/iter 441.32624938486344 ns/iter 0.88
JSON_Fast_Hash_Helm_Chart_Lock 76.36127487559463 ns/iter 88.39676718742835 ns/iter 0.86
JSON_Equality_Helm_Chart_Lock 150.04499696224894 ns/iter 180.08269701787884 ns/iter 0.83
JSON_Divisible_By_Decimal 244.306970962261 ns/iter 273.8152109519059 ns/iter 0.89
JSON_String_Equal/10 5.417464680576182 ns/iter 6.3110388402740085 ns/iter 0.86
JSON_String_Equal/100 6.041231237348676 ns/iter 7.134834433766547 ns/iter 0.85
JSON_String_Equal_Small_By_Perfect_Hash/10 0.623886865891076 ns/iter 0.8343622415189043 ns/iter 0.75
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.204059092428498 ns/iter 25.60097708269042 ns/iter 0.98
JSON_String_Fast_Hash/10 2.5673241299283625 ns/iter 2.9797890436508254 ns/iter 0.86
JSON_String_Fast_Hash/100 2.567274323690424 ns/iter 2.9831964182658868 ns/iter 0.86
JSON_String_Key_Hash/10 1.2464325620948091 ns/iter 1.6424567002519372 ns/iter 0.76
JSON_String_Key_Hash/100 12.446898548717257 ns/iter 17.225672051699693 ns/iter 0.72
JSON_Object_Defines_Miss_Same_Length 3.1157392418659504 ns/iter 3.6947547336200426 ns/iter 0.84
JSON_Object_Defines_Miss_Too_Small 3.116304612399677 ns/iter 4.108492973491272 ns/iter 0.76
JSON_Object_Defines_Miss_Too_Large 3.113631515178507 ns/iter 3.6969011488984074 ns/iter 0.84
Regex_Lower_S_Or_Upper_S_Asterisk 0.6227397009836004 ns/iter 0.8214443939589544 ns/iter 0.76
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.9343414563814653 ns/iter 1.231755050503062 ns/iter 0.76
Regex_Period_Asterisk 0.6230976102373339 ns/iter 0.8207406032208279 ns/iter 0.76
Regex_Group_Period_Asterisk_Group 0.934220468785403 ns/iter 1.2320715123835788 ns/iter 0.76
Regex_Period_Plus 0.6245049908994432 ns/iter 0.8212536210516416 ns/iter 0.76
Regex_Period 0.9350487389098271 ns/iter 1.2347876084553597 ns/iter 0.76
Regex_Caret_Period_Plus_Dollar 0.6229279192774627 ns/iter 0.8208398540386195 ns/iter 0.76
Regex_Caret_Group_Period_Plus_Group_Dollar 0.9347927483586774 ns/iter 1.2318167587561288 ns/iter 0.76
Regex_Caret_Period_Asterisk_Dollar 0.6230447993746473 ns/iter 0.8214201372345619 ns/iter 0.76
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.9350523157068946 ns/iter 1.232091040368234 ns/iter 0.76
Regex_Caret_X_Hyphen 3.741515950800989 ns/iter 4.10535699676304 ns/iter 0.91
Regex_Period_Md_Dollar 28.7263084591962 ns/iter 43.75081267361693 ns/iter 0.66
Regex_Caret_Slash_Period_Asterisk 4.048073133132866 ns/iter 4.513611663929354 ns/iter 0.90
Regex_Caret_Period_Range_Dollar 1.558299001938433 ns/iter 2.0535551889794927 ns/iter 0.76
Regex_Nested_Backtrack 38.04951459683648 ns/iter 50.3613073845285 ns/iter 0.76

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

@jviotti jviotti merged commit 966869b into main Jul 16, 2026
12 checks passed
@jviotti jviotti deleted the pointer-misc branch July 16, 2026 12:46

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

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: a92b9a4 Previous: 2060a4f Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.2272187002888555 ns/iter 2.463784909556154 ns/iter 0.90
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1996971341655542 ns/iter 2.464981991166389 ns/iter 0.89
Regex_Period_Asterisk 2.194105438823273 ns/iter 2.4622188404979766 ns/iter 0.89
Regex_Group_Period_Asterisk_Group 2.1843325723507765 ns/iter 2.462612782790485 ns/iter 0.89
Regex_Period_Plus 2.814046502266709 ns/iter 3.866701615903649 ns/iter 0.73
Regex_Period 2.803074108798425 ns/iter 3.8712255335495764 ns/iter 0.72
Regex_Caret_Period_Plus_Dollar 2.4912763562922384 ns/iter 3.516246052698008 ns/iter 0.71
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4927390578519955 ns/iter 3.515172705014188 ns/iter 0.71
Regex_Caret_Period_Asterisk_Dollar 3.42378328502162 ns/iter 2.818461106958228 ns/iter 1.21
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.4275413062939126 ns/iter 2.8136197084694334 ns/iter 1.22
Regex_Caret_X_Hyphen 6.555252674972018 ns/iter 7.030050596035553 ns/iter 0.93
Regex_Period_Md_Dollar 27.213325853307975 ns/iter 26.276043041483206 ns/iter 1.04
Regex_Caret_Slash_Period_Asterisk 7.160387650978914 ns/iter 7.644511005293332 ns/iter 0.94
Regex_Caret_Period_Range_Dollar 4.356759246422397 ns/iter 4.5703818978814335 ns/iter 0.95
Regex_Nested_Backtrack 38.155261868114486 ns/iter 39.08510871383605 ns/iter 0.98
JSON_Array_Of_Objects_Unique 458.4604210416526 ns/iter 479.39332040654966 ns/iter 0.96
JSON_Parse_1 4925.755639308691 ns/iter 4744.603787904626 ns/iter 1.04
JSON_Parse_Real 5407.539820078231 ns/iter 5373.347850747523 ns/iter 1.01
JSON_Parse_Decimal 7863.748659682855 ns/iter 7710.529642089171 ns/iter 1.02
JSON_Parse_Schema_ISO_Language 3477719.338308762 ns/iter 3604901.525772895 ns/iter 0.96
JSON_Parse_Integer 3855.9815197219827 ns/iter 4083.9423262476325 ns/iter 0.94
JSON_Parse_String_NonSSO_Plain 4889.768558219763 ns/iter 5105.755274200201 ns/iter 0.96
JSON_Parse_String_SSO_Plain 2673.2091434358936 ns/iter 2891.0854991579686 ns/iter 0.92
JSON_Parse_String_Escape_Heavy 14222.805962555802 ns/iter 14518.294883237482 ns/iter 0.98
JSON_Parse_Object_Short_Keys 8074.964734238339 ns/iter 7896.864670234663 ns/iter 1.02
JSON_Parse_Object_Scalar_Properties 4155.801776394543 ns/iter 4039.4516600219977 ns/iter 1.03
JSON_Parse_Object_Array_Properties 5378.6967455500935 ns/iter 5524.712248123335 ns/iter 0.97
JSON_Parse_Object_Object_Properties 5358.439757512568 ns/iter 5520.6973873984425 ns/iter 0.97
JSON_Parse_Nested_Containers 45613.05212835938 ns/iter 45361.015783390685 ns/iter 1.01
JSON_From_String_Copy 19.317123653574473 ns/iter 21.12837683726818 ns/iter 0.91
JSON_From_String_Temporary 17.448995350096826 ns/iter 19.02036690183158 ns/iter 0.92
JSON_Number_To_Double 23.74513022636287 ns/iter 22.561524749390223 ns/iter 1.05
JSON_Object_At_Last_Key/8 5.916667883883004 ns/iter 6.677414281544552 ns/iter 0.89
JSON_Object_At_Last_Key/32 21.799438050590666 ns/iter 23.67005601840536 ns/iter 0.92
JSON_Object_At_Last_Key/128 87.90340013179195 ns/iter 91.2275715254471 ns/iter 0.96
JSON_Object_At_Last_Key/512 405.492927109751 ns/iter 381.05060601000406 ns/iter 1.06
JSON_Fast_Hash_Helm_Chart_Lock 56.67147096627825 ns/iter 68.67474057134524 ns/iter 0.83
JSON_Equality_Helm_Chart_Lock 157.64622819804606 ns/iter 173.84116337196193 ns/iter 0.91
JSON_Divisible_By_Decimal 255.70105761392426 ns/iter 252.10541638523142 ns/iter 1.01
JSON_String_Equal/10 5.922608168957189 ns/iter 5.630705823154669 ns/iter 1.05
JSON_String_Equal/100 6.543141632229438 ns/iter 6.351175491419369 ns/iter 1.03
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9358831299001003 ns/iter 1.0548942997857778 ns/iter 0.89
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.283264447391327 ns/iter 12.480701441867081 ns/iter 0.82
JSON_String_Fast_Hash/10 2.1804530426348046 ns/iter 2.112250746417664 ns/iter 1.03
JSON_String_Fast_Hash/100 2.179453331954479 ns/iter 2.11153146241372 ns/iter 1.03
JSON_String_Key_Hash/10 2.501696968112564 ns/iter 2.8146483708298393 ns/iter 0.89
JSON_String_Key_Hash/100 6.537172585921532 ns/iter 8.083693557693458 ns/iter 0.81
JSON_Object_Defines_Miss_Same_Length 2.6438910363216586 ns/iter 2.919206579126845 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Small 2.6529504406311504 ns/iter 2.9408352784273704 ns/iter 0.90
JSON_Object_Defines_Miss_Too_Large 3.229156130454085 ns/iter 3.210558534949352 ns/iter 1.01
Pointer_Object_Traverse 28.70314454978151 ns/iter 30.63675170004453 ns/iter 0.94
Pointer_Object_Try_Traverse 30.946113378058513 ns/iter 32.90435598209202 ns/iter 0.94
Pointer_Push_Back_Pointer_To_Weak_Pointer 193.16526643092737 ns/iter 188.96654451274728 ns/iter 1.02
Pointer_Walker_Schema_ISO_Language 2618213.8764042566 ns/iter 2766473.3067727736 ns/iter 0.95
Pointer_Maybe_Tracked_Deeply_Nested/0 1254099.985890672 ns/iter 1238553.3167259975 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 1590336.6530611014 ns/iter 1618156.4884258104 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 653.9200561633128 ns/iter 726.2349563503773 ns/iter 0.90
JSONPath_Descendant_Filter_Nested 1624.4605324148686 ns/iter 1581.351974931887 ns/iter 1.03
URITemplateRouter_Create 33586.647768978044 ns/iter 30581.36662481033 ns/iter 1.10
URITemplateRouter_Match 175.97585609871345 ns/iter 177.67789265174602 ns/iter 0.99
URITemplateRouter_Match_BasePath 201.4385101593972 ns/iter 210.19280421817146 ns/iter 0.96
URITemplateRouterView_Restore 8628.241405153447 ns/iter 9980.132958801583 ns/iter 0.86
URITemplateRouterView_Match 144.57442285863854 ns/iter 145.59356672744084 ns/iter 0.99
URITemplateRouterView_Match_BasePath 164.4366618846715 ns/iter 165.42383019202123 ns/iter 0.99
URITemplateRouterView_Arguments 440.30761371273263 ns/iter 452.05889641614726 ns/iter 0.97
JSONL_Parse_Large 9688514.708333034 ns/iter 9077607.987013504 ns/iter 1.07
JSONL_Parse_Large_GZIP 11298494.806451784 ns/iter 10860406.738461629 ns/iter 1.04
JSONLD_Catalog_Annotation_List_Populate 1260288.372972977 ns/iter 1271218.4563637988 ns/iter 0.99
JSONLD_Catalog_Materialize 4216887.873494204 ns/iter 4335407.86075988 ns/iter 0.97
HTML_Build_Table_100000 68577458.89999478 ns/iter 70336451.70000681 ns/iter 0.97
HTML_Render_Table_100000 5278212.371212194 ns/iter 5197671.848484539 ns/iter 1.02
GZIP_Compress_ISO_Language_Set_3_Locations 32773164.142857544 ns/iter 35931927.6315809 ns/iter 0.91
GZIP_Decompress_ISO_Language_Set_3_Locations 4075372.4035088806 ns/iter 4291521.152439151 ns/iter 0.95
GZIP_Compress_ISO_Language_Set_3_Schema 1861387.3537234173 ns/iter 2123509.1094226665 ns/iter 0.88
GZIP_Decompress_ISO_Language_Set_3_Schema 355392.3223182763 ns/iter 276343.6296881338 ns/iter 1.29
JOSE_VerifySignature_RS256 57922.54494335562 ns/iter 63765.12313432681 ns/iter 0.91
JOSE_VerifySignature_ES512 2361636.570945983 ns/iter 2722568.9069764097 ns/iter 0.87

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

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: a92b9a4 Previous: 2060a4f Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.827427292699053 ns/iter 2.139887258951032 ns/iter 0.85
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.8112094650185637 ns/iter 2.3471578695927926 ns/iter 0.77
Regex_Period_Asterisk 1.823126950499942 ns/iter 2.3045072684395813 ns/iter 0.79
Regex_Group_Period_Asterisk_Group 1.7423383495411338 ns/iter 2.2242996823520618 ns/iter 0.78
Regex_Period_Plus 2.3232513588728403 ns/iter 2.627220312155605 ns/iter 0.88
Regex_Period 2.110551402609149 ns/iter 2.6344016804618846 ns/iter 0.80
Regex_Caret_Period_Plus_Dollar 2.339959300159616 ns/iter 2.769821988019823 ns/iter 0.84
Regex_Caret_Group_Period_Plus_Group_Dollar 2.128909266462088 ns/iter 2.5226815681341876 ns/iter 0.84
Regex_Caret_Period_Asterisk_Dollar 1.6966882108142098 ns/iter 2.137122820821 ns/iter 0.79
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.719346971466587 ns/iter 2.1599622733826194 ns/iter 0.80
Regex_Caret_X_Hyphen 6.214700068174303 ns/iter 7.6567586950560855 ns/iter 0.81
Regex_Period_Md_Dollar 18.95412777397899 ns/iter 23.592637461302047 ns/iter 0.80
Regex_Caret_Slash_Period_Asterisk 4.840656696760721 ns/iter 6.02178391970428 ns/iter 0.80
Regex_Caret_Period_Range_Dollar 2.1794473263139604 ns/iter 2.9919740096581986 ns/iter 0.73
Regex_Nested_Backtrack 34.75533076809747 ns/iter 34.554553861252465 ns/iter 1.01
JSON_Array_Of_Objects_Unique 427.3192357826651 ns/iter 432.17423832211483 ns/iter 0.99
JSON_Parse_1 7132.565850497258 ns/iter 8836.030459708967 ns/iter 0.81
JSON_Parse_Real 6774.7757790092855 ns/iter 8828.061952914082 ns/iter 0.77
JSON_Parse_Decimal 8542.921016297478 ns/iter 9425.840263935053 ns/iter 0.91
JSON_Parse_Schema_ISO_Language 4301960.294117848 ns/iter 5089147.500000308 ns/iter 0.85
JSON_Parse_Integer 4968.039332056188 ns/iter 5680.758049768399 ns/iter 0.87
JSON_Parse_String_NonSSO_Plain 7825.3500388322345 ns/iter 8389.282789602208 ns/iter 0.93
JSON_Parse_String_SSO_Plain 2796.9705399052787 ns/iter 3333.542648665335 ns/iter 0.84
JSON_Parse_String_Escape_Heavy 22220.760884004914 ns/iter 25218.749999998472 ns/iter 0.88
JSON_Parse_Object_Short_Keys 8084.022720269774 ns/iter 9722.804725884784 ns/iter 0.83
JSON_Parse_Object_Scalar_Properties 4536.620073178449 ns/iter 5944.299475466348 ns/iter 0.76
JSON_Parse_Object_Array_Properties 7452.258792197701 ns/iter 9734.062760549727 ns/iter 0.77
JSON_Parse_Object_Object_Properties 8026.196129031896 ns/iter 9595.339297425608 ns/iter 0.84
JSON_Parse_Nested_Containers 61513.76281503007 ns/iter 81032.98376726164 ns/iter 0.76
JSON_From_String_Copy 24.388591823127005 ns/iter 29.410340592175903 ns/iter 0.83
JSON_From_String_Temporary 19.42747065739221 ns/iter 24.842787722201074 ns/iter 0.78
JSON_Number_To_Double 65.32178921502768 ns/iter 40.37515667851612 ns/iter 1.62
JSON_Object_At_Last_Key/8 5.258292319853217 ns/iter 5.635078750000275 ns/iter 0.93
JSON_Object_At_Last_Key/32 14.105214265831304 ns/iter 14.804427325423168 ns/iter 0.95
JSON_Object_At_Last_Key/128 69.2137129800376 ns/iter 67.68939242723447 ns/iter 1.02
JSON_Object_At_Last_Key/512 204.68366145656952 ns/iter 236.87036446693836 ns/iter 0.86
JSON_Fast_Hash_Helm_Chart_Lock 61.878624762488066 ns/iter 80.59694476503192 ns/iter 0.77
JSON_Equality_Helm_Chart_Lock 163.89346964791136 ns/iter 153.8227344479907 ns/iter 1.07
JSON_Divisible_By_Decimal 194.17237390412876 ns/iter 196.89076740765057 ns/iter 0.99
JSON_String_Equal/10 8.292267394729446 ns/iter 7.407751702973608 ns/iter 1.12
JSON_String_Equal/100 7.673735367554467 ns/iter 6.551851541587886 ns/iter 1.17
JSON_String_Equal_Small_By_Perfect_Hash/10 0.42981792814766123 ns/iter 0.34432847132521144 ns/iter 1.25
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.2975711210986605 ns/iter 3.3280948761500735 ns/iter 1.29
JSON_String_Fast_Hash/10 2.990223858791199 ns/iter 2.8533820305523516 ns/iter 1.05
JSON_String_Fast_Hash/100 3.1332328643708984 ns/iter 3.2314097813200395 ns/iter 0.97
JSON_String_Key_Hash/10 2.557417172763587 ns/iter 1.8414951602065033 ns/iter 1.39
JSON_String_Key_Hash/100 3.3828468379883434 ns/iter 2.5860169508563624 ns/iter 1.31
JSON_Object_Defines_Miss_Same_Length 3.777012594253256 ns/iter 3.085948275603916 ns/iter 1.22
JSON_Object_Defines_Miss_Too_Small 3.811991393898688 ns/iter 3.0573743429097093 ns/iter 1.25
JSON_Object_Defines_Miss_Too_Large 5.355228428559272 ns/iter 3.360447676458621 ns/iter 1.59
Pointer_Object_Traverse 33.92860455008103 ns/iter 26.969448801224353 ns/iter 1.26
Pointer_Object_Try_Traverse 29.299750437799776 ns/iter 24.31826341506581 ns/iter 1.20
Pointer_Push_Back_Pointer_To_Weak_Pointer 222.27781766350552 ns/iter 156.950297030478 ns/iter 1.42
Pointer_Walker_Schema_ISO_Language 3751656.9533679946 ns/iter 2612931.931297809 ns/iter 1.44
Pointer_Maybe_Tracked_Deeply_Nested/0 1722201.4344086698 ns/iter 1214929.1445782124 ns/iter 1.42
Pointer_Maybe_Tracked_Deeply_Nested/1 1397353.4371135177 ns/iter 1139706.5394547926 ns/iter 1.23
Pointer_Position_Tracker_Get_Deeply_Nested 347.15611470470543 ns/iter 359.880298803072 ns/iter 0.96
JSONPath_Descendant_Filter_Nested 1297.1910867977563 ns/iter 1255.6237054870658 ns/iter 1.03
URITemplateRouter_Create 26097.357070839375 ns/iter 23128.934043464007 ns/iter 1.13
URITemplateRouter_Match 179.70506209837808 ns/iter 167.91435666795934 ns/iter 1.07
URITemplateRouter_Match_BasePath 218.73223581887748 ns/iter 198.7456292649835 ns/iter 1.10
URITemplateRouterView_Restore 12009.484102112634 ns/iter 10182.968345366226 ns/iter 1.18
URITemplateRouterView_Match 158.78141917144958 ns/iter 138.95551890676256 ns/iter 1.14
URITemplateRouterView_Match_BasePath 170.54300886455363 ns/iter 157.14744159153966 ns/iter 1.09
URITemplateRouterView_Arguments 583.0038028401044 ns/iter 549.8238493076453 ns/iter 1.06
JSONL_Parse_Large 11322470.238094447 ns/iter 11548581.967212694 ns/iter 0.98
JSONL_Parse_Large_GZIP 12734110.333332814 ns/iter 12830789.606557088 ns/iter 0.99
JSONLD_Catalog_Annotation_List_Populate 1072318.5962442385 ns/iter 1005194.1106667072 ns/iter 1.07
JSONLD_Catalog_Materialize 5559636.194029838 ns/iter 7137389.344261949 ns/iter 0.78
HTML_Build_Table_100000 39892208.33333699 ns/iter 50337923.58333737 ns/iter 0.79
HTML_Render_Table_100000 1903192.2450496366 ns/iter 2093367.698113423 ns/iter 0.91
GZIP_Compress_ISO_Language_Set_3_Locations 29590909.09090698 ns/iter 30929140.181817938 ns/iter 0.96
GZIP_Decompress_ISO_Language_Set_3_Locations 3483690.743718371 ns/iter 10586783.331250161 ns/iter 0.33
GZIP_Compress_ISO_Language_Set_3_Schema 1649185.8899297952 ns/iter 2189014.754098487 ns/iter 0.75
GZIP_Decompress_ISO_Language_Set_3_Schema 342060.6166974194 ns/iter 385795.1912715456 ns/iter 0.89
JOSE_VerifySignature_RS256 31042.80332104775 ns/iter 34605.47499269068 ns/iter 0.90
JOSE_VerifySignature_ES512 1266862.254578757 ns/iter 1593909.1974026377 ns/iter 0.79

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

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: a92b9a4 Previous: 2060a4f Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.335616999999502 ns/iter 5.377516071427684 ns/iter 0.99
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.050357999999733 ns/iter 5.081883000000289 ns/iter 0.99
Regex_Period_Asterisk 5.031299999999419 ns/iter 5.015582724333141 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 5.036655999999766 ns/iter 5.0334970000017165 ns/iter 1.00
Regex_Period_Plus 5.04836800000021 ns/iter 5.0141009999993 ns/iter 1.01
Regex_Period 5.366247321429032 ns/iter 5.339556999999786 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 5.124314999999342 ns/iter 5.225609108308073 ns/iter 0.98
Regex_Caret_Group_Period_Plus_Group_Dollar 5.345734821428241 ns/iter 5.735156000000643 ns/iter 0.93
Regex_Caret_Period_Asterisk_Dollar 5.360203571428761 ns/iter 5.376858035713131 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.0373035714283025 ns/iter 5.076186999999663 ns/iter 0.99
Regex_Caret_X_Hyphen 8.505810267857177 ns/iter 8.572445051016624 ns/iter 0.99
Regex_Period_Md_Dollar 45.12186343641784 ns/iter 45.22575852477118 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 7.874688616071878 ns/iter 8.113536830359282 ns/iter 0.97
Regex_Caret_Period_Range_Dollar 5.982209821428545 ns/iter 6.006838999999218 ns/iter 1.00
Regex_Nested_Backtrack 57.9536339285726 ns/iter 57.83942857141662 ns/iter 1.00
JSON_Array_Of_Objects_Unique 597.6026785715151 ns/iter 582.352410714293 ns/iter 1.03
JSON_Parse_1 8811.213789224921 ns/iter 9010.840130179486 ns/iter 0.98
JSON_Parse_Real 16132.689732144863 ns/iter 16234.56674932756 ns/iter 0.99
JSON_Parse_Decimal 11889.153125000717 ns/iter 12001.969642856888 ns/iter 0.99
JSON_Parse_Schema_ISO_Language 7379041.071427902 ns/iter 7742064.285713874 ns/iter 0.95
JSON_Parse_Integer 6137.571428571472 ns/iter 6156.800892857258 ns/iter 1.00
JSON_Parse_String_NonSSO_Plain 7830.694952254075 ns/iter 7935.873883929848 ns/iter 0.99
JSON_Parse_String_SSO_Plain 3830.0379820753215 ns/iter 3642.3265890756634 ns/iter 1.05
JSON_Parse_String_Escape_Heavy 22058.99687499979 ns/iter 22533.099999996863 ns/iter 0.98
JSON_Parse_Object_Short_Keys 13186.450000000197 ns/iter 13304.56225641783 ns/iter 0.99
JSON_Parse_Object_Scalar_Properties 6793.545758929653 ns/iter 6857.579464285177 ns/iter 0.99
JSON_Parse_Object_Array_Properties 11240.12500000049 ns/iter 11286.989285715825 ns/iter 1.00
JSON_Parse_Object_Object_Properties 11476.98281249987 ns/iter 11595.959375000575 ns/iter 0.99
JSON_Parse_Nested_Containers 77988.43750000473 ns/iter 79885.61383928274 ns/iter 0.98
JSON_From_String_Copy 63.734026785715926 ns/iter 63.96103571428772 ns/iter 1.00
JSON_From_String_Temporary 58.08708035714411 ns/iter 57.83789285715102 ns/iter 1.00
JSON_Number_To_Double 122.91900000000007 ns/iter 123.7635357143014 ns/iter 0.99
JSON_Object_At_Last_Key/8 7.271677678571922 ns/iter 7.241476562500943 ns/iter 1.00
JSON_Object_At_Last_Key/32 23.5802392857108 ns/iter 23.38503991757614 ns/iter 1.01
JSON_Object_At_Last_Key/128 90.90389326321966 ns/iter 89.5777861795743 ns/iter 1.01
JSON_Object_At_Last_Key/512 424.3178337358185 ns/iter 422.41597002028175 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 104.31433462883079 ns/iter 103.73729001174196 ns/iter 1.01
JSON_Equality_Helm_Chart_Lock 209.79013125936922 ns/iter 210.23062231114253 ns/iter 1.00
JSON_Divisible_By_Decimal 300.5236472980552 ns/iter 298.5421875000124 ns/iter 1.01
JSON_String_Equal/10 12.878973437498331 ns/iter 10.614903970470541 ns/iter 1.21
JSON_String_Equal/100 14.263645312500017 ns/iter 11.661032142853855 ns/iter 1.22
JSON_String_Equal_Small_By_Perfect_Hash/10 2.8953396428570546 ns/iter 2.5063817857146984 ns/iter 1.16
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.08354017857221 ns/iter 14.218694196428723 ns/iter 1.06
JSON_String_Fast_Hash/10 6.601000000000364 ns/iter 6.591188392856598 ns/iter 1.00
JSON_String_Fast_Hash/100 6.601874107142335 ns/iter 6.592000892857592 ns/iter 1.00
JSON_String_Key_Hash/10 5.3391339999996035 ns/iter 5.398631000000478 ns/iter 0.99
JSON_String_Key_Hash/100 11.883794642857634 ns/iter 11.87847499999961 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.7707899932663342 ns/iter 3.768946986607093 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 4.099372632098283 ns/iter 4.077400669642017 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Large 3.7830199717677013 ns/iter 3.78281570753042 ns/iter 1.00
Pointer_Object_Traverse 70.54339285714053 ns/iter 70.40637276785691 ns/iter 1.00
Pointer_Object_Try_Traverse 71.75320312500233 ns/iter 71.70425892856055 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 159.43830755167696 ns/iter 178.97993162808078 ns/iter 0.89
Pointer_Walker_Schema_ISO_Language 11767448.21428599 ns/iter 10321870.312502313 ns/iter 1.14
Pointer_Maybe_Tracked_Deeply_Nested/0 2380380.7142858854 ns/iter 2448935.7142856857 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/1 3802835.8288778067 ns/iter 3867878.212290304 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 512.1108916337326 ns/iter 526.9250172081537 ns/iter 0.97
JSONPath_Descendant_Filter_Nested 2403.7135003197377 ns/iter 2416.972500000319 ns/iter 0.99
URITemplateRouter_Create 41495.311275832275 ns/iter 41192.466702818856 ns/iter 1.01
URITemplateRouter_Match 234.07252967938084 ns/iter 234.12238458456875 ns/iter 1.00
URITemplateRouter_Match_BasePath 265.27575291409784 ns/iter 265.51352524615356 ns/iter 1.00
URITemplateRouterView_Restore 30910.65354764819 ns/iter 32567.15625000644 ns/iter 0.95
URITemplateRouterView_Match 180.38706967739057 ns/iter 180.2652214522195 ns/iter 1.00
URITemplateRouterView_Match_BasePath 206.69900416519246 ns/iter 205.4418129858685 ns/iter 1.01
URITemplateRouterView_Arguments 532.8793999999561 ns/iter 531.4763000001221 ns/iter 1.00
JSONL_Parse_Large 32621057.142857052 ns/iter 32665247.61904423 ns/iter 1.00
JSONL_Parse_Large_GZIP 33257385.000001706 ns/iter 33255328.571428996 ns/iter 1.00
JSONLD_Catalog_Annotation_List_Populate 2701548.106060589 ns/iter 2679818.1818175195 ns/iter 1.01
JSONLD_Catalog_Materialize 7669341.111111155 ns/iter 7690215.555557087 ns/iter 1.00
HTML_Build_Table_100000 89375088.88887654 ns/iter 89010000.0000176 ns/iter 1.00
HTML_Render_Table_100000 7630915.17857057 ns/iter 7626563.333332746 ns/iter 1.00
GZIP_Compress_ISO_Language_Set_3_Locations 36888673.684212625 ns/iter 36710752.6315785 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Locations 10104190.666664485 ns/iter 9985821.333333055 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Schema 2115990.3125003157 ns/iter 2106375.072463524 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 650265.8928571999 ns/iter 645201.3392857582 ns/iter 1.01
JOSE_VerifySignature_RS256 22034.724999997477 ns/iter 21219.575000003486 ns/iter 1.04
JOSE_VerifySignature_ES512 1551431.026785772 ns/iter 1540366.5178571455 ns/iter 1.01

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