Skip to content

Use RAII on write_file#2378

Merged
jviotti merged 1 commit into
mainfrom
fix-terminate
May 13, 2026
Merged

Use RAII on write_file#2378
jviotti merged 1 commit into
mainfrom
fix-terminate

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented May 13, 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 1 file

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 13, 2026

🤖 Augment PR Summary

Summary: Refactors the write_file implementation to use an RAII FileWriter wrapper around std::ofstream.

Changes:

  • Introduces `FileWriter` (anonymous namespace) that creates parent directories, opens the file with exceptions enabled, and maps `EACCES` to `IOFilePermissionError`.
  • Adds a `commit()` step that flushes/closes on the success path, while the destructor closes the stream with exceptions disabled during unwinding.
  • Updates all `write_file` overloads to use `FileWriter` instead of the previous helper that returned an `std::ofstream` by value.

Technical Notes: The commit flag ensures cleanup doesn’t throw during stack unwinding while preserving throwing behavior on the explicit commit path.

🤖 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. No suggestions at this time.

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

@jviotti jviotti merged commit 7b802ef into main May 13, 2026
13 checks passed
@jviotti jviotti deleted the fix-terminate branch May 13, 2026 13:36
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: 6076834 Previous: ecaa0df Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.496042597610688 ns/iter 2.0181686562819285 ns/iter 1.24
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.180225776801971 ns/iter 2.215638744917354 ns/iter 0.98
Regex_Period_Asterisk 2.491159421054276 ns/iter 2.017420589822009 ns/iter 1.23
Regex_Group_Period_Asterisk_Group 2.1810169616495205 ns/iter 2.206805905402207 ns/iter 0.99
Regex_Period_Plus 3.1195861759429953 ns/iter 2.307758786283587 ns/iter 1.35
Regex_Period 2.5267883817126378 ns/iter 2.042550162399803 ns/iter 1.24
Regex_Caret_Period_Plus_Dollar 2.8028321503430873 ns/iter 2.304705320954437 ns/iter 1.22
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4901347830251144 ns/iter 2.02074281918294 ns/iter 1.23
Regex_Caret_Period_Asterisk_Dollar 2.8040778357730676 ns/iter 2.035666066569241 ns/iter 1.38
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.491173911183307 ns/iter 2.2505850899924336 ns/iter 1.11
Regex_Caret_X_Hyphen 6.859371033300709 ns/iter 4.033999175285496 ns/iter 1.70
Regex_Period_Md_Dollar 27.352966781873423 ns/iter 25.47669464901273 ns/iter 1.07
Regex_Caret_Slash_Period_Asterisk 6.2253905256794795 ns/iter 4.03269215549766 ns/iter 1.54
Regex_Caret_Period_Range_Dollar 3.7355756367464097 ns/iter 2.0184595854366107 ns/iter 1.85
Regex_Nested_Backtrack 40.868741527951826 ns/iter 33.21284925818487 ns/iter 1.23
JSON_Array_Of_Objects_Unique 424.81562050262454 ns/iter 345.37915601772005 ns/iter 1.23
JSON_Parse_1 5841.400427193888 ns/iter 5183.980134680601 ns/iter 1.13
JSON_Parse_Real 12467.111876752586 ns/iter 9893.447405229412 ns/iter 1.26
JSON_Parse_Decimal 11523.020074166523 ns/iter 10096.28685727556 ns/iter 1.14
JSON_Parse_Schema_ISO_Language 3620634.1761661638 ns/iter 3411121.5778893754 ns/iter 1.06
JSON_Fast_Hash_Helm_Chart_Lock 60.41730817292418 ns/iter 49.852953483366896 ns/iter 1.21
JSON_Equality_Helm_Chart_Lock 155.75222863261098 ns/iter 128.8064045240851 ns/iter 1.21
JSON_Divisible_By_Decimal 248.43926964112336 ns/iter 252.8366811510795 ns/iter 0.98
JSON_String_Equal/10 5.92098306451491 ns/iter 4.323241983987233 ns/iter 1.37
JSON_String_Equal/100 6.5507320842838075 ns/iter 5.4796877692618535 ns/iter 1.20
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9349623113029477 ns/iter 0.8650612785153905 ns/iter 1.08
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.629212452823703 ns/iter 9.338412299679613 ns/iter 1.57
JSON_String_Fast_Hash/10 2.491423535754828 ns/iter 2.0163108801831715 ns/iter 1.24
JSON_String_Fast_Hash/100 2.4907713584969526 ns/iter 2.0158271076380596 ns/iter 1.24
JSON_String_Key_Hash/10 2.5758299716378783 ns/iter 1.7296566052815012 ns/iter 1.49
JSON_String_Key_Hash/100 21.899542053040943 ns/iter 6.648380155950203 ns/iter 3.29
JSON_Object_Defines_Miss_Same_Length 3.742489314667292 ns/iter 3.4631655542687705 ns/iter 1.08
JSON_Object_Defines_Miss_Too_Small 3.739678919292619 ns/iter 3.635044590167889 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Large 3.7395915949830365 ns/iter 3.648147177488716 ns/iter 1.03
Pointer_Object_Traverse 25.582756634643506 ns/iter 23.765677329397292 ns/iter 1.08
Pointer_Object_Try_Traverse 28.522369211966023 ns/iter 27.408715532757288 ns/iter 1.04
Pointer_Push_Back_Pointer_To_Weak_Pointer 195.35191951232625 ns/iter 164.73758960244984 ns/iter 1.19
Pointer_Walker_Schema_ISO_Language 3103352.4419642943 ns/iter 3233958.672897231 ns/iter 0.96
Pointer_Maybe_Tracked_Deeply_Nested/0 1394575.4040000795 ns/iter 1189333.8911564264 ns/iter 1.17
Pointer_Maybe_Tracked_Deeply_Nested/1 1939989.4472223246 ns/iter 2046518.249999836 ns/iter 0.95
Pointer_Position_Tracker_Get_Deeply_Nested 619.5108235208797 ns/iter 714.6361528005283 ns/iter 0.87
Schema_Frame_WoT_References 5144864.926470953 ns/iter 4664086.046666398 ns/iter 1.10
Schema_Frame_OMC_References 20956924.454546396 ns/iter 21585910.787879664 ns/iter 0.97
Schema_Frame_OMC_Locations 19383478.805555873 ns/iter 19489680.749997105 ns/iter 0.99
Schema_Frame_ISO_Language_Locations 99281780.66667216 ns/iter 96736145.57142888 ns/iter 1.03
Schema_Frame_KrakenD_References 39917567.38889131 ns/iter 39367143.83333614 ns/iter 1.01
Schema_Frame_KrakenD_Reachable 566697674.000011 ns/iter 783978680.9998941 ns/iter 0.72
Schema_Iterator_ISO_Language 2981125.7923727687 ns/iter 2829903.3238869454 ns/iter 1.05
Schema_Frame_ISO_Language_Locations_To_JSON 109630127.80000553 ns/iter 116301198.39999226 ns/iter 0.94
Schema_Tracker_ISO_Language 4676683.369127857 ns/iter 4891126.31249987 ns/iter 0.96
Schema_Tracker_ISO_Language_To_JSON 19141399.05555443 ns/iter 20577190.705881443 ns/iter 0.93
Schema_Format_ISO_Language_To_JSON 104989395.14283328 ns/iter 101756129.00002305 ns/iter 1.03
Schema_Bundle_Meta_2020_12 1662289.3642837275 ns/iter 1550137.3503313938 ns/iter 1.07
Schema_Frame_Many_Resources_References 366461852.9999757 ns/iter 372928217.99997 ns/iter 0.98
EditorSchema_ForEditor_EmbeddedResources 13768810.627456618 ns/iter 13089050.833337346 ns/iter 1.05
URITemplateRouter_Create 32545.438826491507 ns/iter 28370.486710151778 ns/iter 1.15
URITemplateRouter_Match 175.97070941069032 ns/iter 153.99901669058445 ns/iter 1.14
URITemplateRouter_Match_BasePath 205.89460076393485 ns/iter 172.5212789219507 ns/iter 1.19
URITemplateRouterView_Restore 7512.02886238643 ns/iter 3453.4923273277736 ns/iter 2.18
URITemplateRouterView_Match 141.47606684617327 ns/iter 130.20973403019403 ns/iter 1.09
URITemplateRouterView_Match_BasePath 161.07747617769198 ns/iter 145.7580447229734 ns/iter 1.11
URITemplateRouterView_Arguments 454.0364121283757 ns/iter 423.3695344670261 ns/iter 1.07
JSONL_Parse_Large 10887623.656250512 ns/iter 9723312.29166596 ns/iter 1.12
JSONL_Parse_Large_GZIP 12089128.89655204 ns/iter 10882744.169230836 ns/iter 1.11
HTML_Build_Table_100000 64276880.90909875 ns/iter 71404323.55554873 ns/iter 0.90
HTML_Render_Table_100000 5319230.310077756 ns/iter 10585340.031250112 ns/iter 0.50

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

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Details
Benchmark suite Current: 6076834 Previous: 4707860 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 6.845471428572328 ns/iter 7.545964285713731 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.850168749999901 ns/iter 7.522830357142852 ns/iter 0.91
Regex_Period_Asterisk 6.848303571427294 ns/iter 7.5169441964284545 ns/iter 0.91
Regex_Group_Period_Asterisk_Group 6.934882142857645 ns/iter 7.56869910714337 ns/iter 0.92
Regex_Period_Plus 9.182657101863356 ns/iter 9.684830313907982 ns/iter 0.95
Regex_Period 9.27024906575827 ns/iter 9.703088795967538 ns/iter 0.96
Regex_Caret_Period_Plus_Dollar 8.823751299892717 ns/iter 9.779883438482852 ns/iter 0.90
Regex_Caret_Group_Period_Plus_Group_Dollar 9.494417410714615 ns/iter 9.699541028125598 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 6.901640624999825 ns/iter 7.60534040178332 ns/iter 0.91
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.837859821428895 ns/iter 7.511529017854965 ns/iter 0.91
Regex_Caret_X_Hyphen 10.693051562501665 ns/iter 11.776357142857867 ns/iter 0.91
Regex_Period_Md_Dollar 31.37534374999973 ns/iter 40.77687420683699 ns/iter 0.77
Regex_Caret_Slash_Period_Asterisk 10.117814686972773 ns/iter 11.260095485444692 ns/iter 0.90
Regex_Caret_Period_Range_Dollar 8.750024960936067 ns/iter 9.677507099652743 ns/iter 0.90
Regex_Nested_Backtrack 39.386975446425204 ns/iter 52.30184821428452 ns/iter 0.75
JSON_Array_Of_Objects_Unique 377.9399325107581 ns/iter 456.4100572344673 ns/iter 0.83
JSON_Parse_1 5924.14732142897 ns/iter 7856.271205357908 ns/iter 0.75
JSON_Parse_Real 10749.042187502057 ns/iter 15526.506696430835 ns/iter 0.69
JSON_Parse_Decimal 11485.581249999655 ns/iter 15627.008928572448 ns/iter 0.73
JSON_Parse_Schema_ISO_Language 5308916.964285768 ns/iter 5832097.999998496 ns/iter 0.91
JSON_Fast_Hash_Helm_Chart_Lock 49.852339999984 ns/iter 57.35409999999775 ns/iter 0.87
JSON_Equality_Helm_Chart_Lock 223.01228125002126 ns/iter 306.88040878924545 ns/iter 0.73
JSON_Divisible_By_Decimal 205.37561583145083 ns/iter 258.6648396725824 ns/iter 0.79
JSON_String_Equal/10 9.054665584576592 ns/iter 12.546408928573426 ns/iter 0.72
JSON_String_Equal/100 10.230570490041936 ns/iter 14.0145821428551 ns/iter 0.73
JSON_String_Equal_Small_By_Perfect_Hash/10 1.6638685948644452 ns/iter 2.2105231250002078 ns/iter 0.75
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 8.805539692833595 ns/iter 12.523823214284644 ns/iter 0.70
JSON_String_Fast_Hash/10 2.7427348413008494 ns/iter 3.132158482142496 ns/iter 0.88
JSON_String_Fast_Hash/100 2.7367548636274868 ns/iter 3.138050892857791 ns/iter 0.87
JSON_String_Key_Hash/10 3.022583612023473 ns/iter 3.763056957565588 ns/iter 0.80
JSON_String_Key_Hash/100 13.159023214285526 ns/iter 16.88125301195364 ns/iter 0.78
JSON_Object_Defines_Miss_Same_Length 3.859348772321525 ns/iter 5.20939799999951 ns/iter 0.74
JSON_Object_Defines_Miss_Too_Small 3.113304464285704 ns/iter 3.766261600417078 ns/iter 0.83
JSON_Object_Defines_Miss_Too_Large 3.003513634370614 ns/iter 3.767044278987995 ns/iter 0.80
Pointer_Object_Traverse 32.652714868794455 ns/iter 46.70211096695544 ns/iter 0.70
Pointer_Object_Try_Traverse 40.98921127034772 ns/iter 49.463730000002215 ns/iter 0.83
Pointer_Push_Back_Pointer_To_Weak_Pointer 133.93158928571276 ns/iter 169.34670553664822 ns/iter 0.79
Pointer_Walker_Schema_ISO_Language 10123270.666666334 ns/iter 10973990.625000596 ns/iter 0.92
Pointer_Maybe_Tracked_Deeply_Nested/0 1668060.8695647947 ns/iter 1950533.7792639409 ns/iter 0.86
Pointer_Maybe_Tracked_Deeply_Nested/1 2523329.0969901225 ns/iter 3114536.6071427814 ns/iter 0.81
Pointer_Position_Tracker_Get_Deeply_Nested 478.72837611619343 ns/iter 616.3553571426457 ns/iter 0.78
Schema_Frame_WoT_References 7971977.777775566 ns/iter 9861470.312500842 ns/iter 0.81
Schema_Frame_OMC_References 34566645.0000067 ns/iter 42408782.3529429 ns/iter 0.82
Schema_Frame_OMC_Locations 33292185.714290533 ns/iter 38934561.1111038 ns/iter 0.86
Schema_Frame_ISO_Language_Locations 160581125.00002152 ns/iter 180286350.00001714 ns/iter 0.89
Schema_Frame_KrakenD_References 72874811.11112963 ns/iter 92777342.85715918 ns/iter 0.79
Schema_Frame_KrakenD_Reachable 411825649.9999688 ns/iter 550131599.999986 ns/iter 0.75
Schema_Iterator_ISO_Language 5092322.999998941 ns/iter 6657563.392855488 ns/iter 0.76
Schema_Frame_ISO_Language_Locations_To_JSON 251859299.99997827 ns/iter 300542850.0000562 ns/iter 0.84
Schema_Tracker_ISO_Language 7907521.111110327 ns/iter 9664760.93750046 ns/iter 0.82
Schema_Tracker_ISO_Language_To_JSON 38903100.00000833 ns/iter 48957942.857133016 ns/iter 0.79
Schema_Format_ISO_Language_To_JSON 166758125.0000012 ns/iter 198837475.00006166 ns/iter 0.84
Schema_Bundle_Meta_2020_12 2214839.799329103 ns/iter 3087543.220332872 ns/iter 0.72
Schema_Frame_Many_Resources_References 1137378799.9998512 ns/iter 1554927300.000145 ns/iter 0.73
EditorSchema_ForEditor_EmbeddedResources 23232480.000009067 ns/iter 28867309.09091801 ns/iter 0.80
URITemplateRouter_Create 28245.931937806075 ns/iter 41632.18037258085 ns/iter 0.68
URITemplateRouter_Match 169.28387294310983 ns/iter 218.93565636877912 ns/iter 0.77
URITemplateRouter_Match_BasePath 196.369463961536 ns/iter 243.56685714289077 ns/iter 0.81
URITemplateRouterView_Restore 17907.612567967088 ns/iter 31598.46247597517 ns/iter 0.57
URITemplateRouterView_Match 124.46187500001673 ns/iter 163.98896857068345 ns/iter 0.76
URITemplateRouterView_Match_BasePath 144.7392993420019 ns/iter 189.96893660433287 ns/iter 0.76
URITemplateRouterView_Arguments 341.9075371594309 ns/iter 441.8003749999855 ns/iter 0.77
JSONL_Parse_Large 20958679.411766004 ns/iter 27754015.999998957 ns/iter 0.76
JSONL_Parse_Large_GZIP 20639164.70587949 ns/iter 27595683.999998074 ns/iter 0.75
HTML_Build_Table_100000 73260966.66666773 ns/iter 85115722.22222538 ns/iter 0.86
HTML_Render_Table_100000 6848355.357143581 ns/iter 6999115.55555496 ns/iter 0.98

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: 6076834 Previous: 4707860 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.0018600770553237 ns/iter 1.9164708044557333 ns/iter 1.04
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0004290452610802 ns/iter 1.7337440954396883 ns/iter 1.15
Regex_Period_Asterisk 1.8470456643434248 ns/iter 1.7148753040841493 ns/iter 1.08
Regex_Group_Period_Asterisk_Group 1.953802740861605 ns/iter 1.7394005086814943 ns/iter 1.12
Regex_Period_Plus 2.2511252871473992 ns/iter 2.0843421163064577 ns/iter 1.08
Regex_Period 2.222196786295691 ns/iter 2.0358330677706613 ns/iter 1.09
Regex_Caret_Period_Plus_Dollar 2.348904145033917 ns/iter 2.1359666781804263 ns/iter 1.10
Regex_Caret_Group_Period_Plus_Group_Dollar 2.2700452768279713 ns/iter 2.175400118603611 ns/iter 1.04
Regex_Caret_Period_Asterisk_Dollar 1.827045183784791 ns/iter 1.768398607188055 ns/iter 1.03
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.7727737710697669 ns/iter 2.1144069163383077 ns/iter 0.84
Regex_Caret_X_Hyphen 7.56506543692849 ns/iter 6.990462559906762 ns/iter 1.08
Regex_Period_Md_Dollar 24.986819189527996 ns/iter 25.88325853806402 ns/iter 0.97
Regex_Caret_Slash_Period_Asterisk 9.649370421965953 ns/iter 9.265577615440026 ns/iter 1.04
Regex_Caret_Period_Range_Dollar 1.8745790043850445 ns/iter 1.731664165263211 ns/iter 1.08
Regex_Nested_Backtrack 27.529511343562927 ns/iter 24.430663295549085 ns/iter 1.13
JSON_Array_Of_Objects_Unique 386.6608542873926 ns/iter 341.00690050764865 ns/iter 1.13
JSON_Parse_1 4295.525642650146 ns/iter 3923.241365646896 ns/iter 1.09
JSON_Parse_Real 6951.560700180875 ns/iter 6374.988637137217 ns/iter 1.09
JSON_Parse_Decimal 8906.358639176538 ns/iter 8123.304350936275 ns/iter 1.10
JSON_Parse_Schema_ISO_Language 5213297.045159585 ns/iter 4396554.216867456 ns/iter 1.19
JSON_Fast_Hash_Helm_Chart_Lock 66.01105153484573 ns/iter 62.993156188054286 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 143.3972506922677 ns/iter 160.89520680240085 ns/iter 0.89
JSON_Divisible_By_Decimal 202.55175497546927 ns/iter 179.25577381898347 ns/iter 1.13
JSON_String_Equal/10 8.403012007178603 ns/iter 6.752011637906269 ns/iter 1.24
JSON_String_Equal/100 7.616343067730577 ns/iter 7.454045493411747 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8910476619176917 ns/iter 0.8984124492709898 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.756339818665332 ns/iter 3.493425169616726 ns/iter 1.08
JSON_String_Fast_Hash/10 2.495438193676076 ns/iter 2.405405770867503 ns/iter 1.04
JSON_String_Fast_Hash/100 2.1405214045501433 ns/iter 2.0665815607660836 ns/iter 1.04
JSON_String_Key_Hash/10 1.4485136496900628 ns/iter 1.392746422729349 ns/iter 1.04
JSON_String_Key_Hash/100 2.494258250634384 ns/iter 2.1922800309810735 ns/iter 1.14
JSON_Object_Defines_Miss_Same_Length 2.500132162058383 ns/iter 2.5502554987949733 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Small 2.510336541751862 ns/iter 2.4364018078720324 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Large 2.429691962284269 ns/iter 2.376818597902591 ns/iter 1.02
Pointer_Object_Traverse 14.101435047218889 ns/iter 13.93235248983062 ns/iter 1.01
Pointer_Object_Try_Traverse 23.086284570739934 ns/iter 19.24601924396576 ns/iter 1.20
Pointer_Push_Back_Pointer_To_Weak_Pointer 228.43263422827692 ns/iter 159.0044633071697 ns/iter 1.44
Pointer_Walker_Schema_ISO_Language 6255379.259843227 ns/iter 5443241.369368628 ns/iter 1.15
Pointer_Maybe_Tracked_Deeply_Nested/0 1115544.3886093185 ns/iter 1041763.0175181103 ns/iter 1.07
Pointer_Maybe_Tracked_Deeply_Nested/1 1408678.403755881 ns/iter 1323910.4391145685 ns/iter 1.06
Pointer_Position_Tracker_Get_Deeply_Nested 374.8017884018243 ns/iter 349.31291375171213 ns/iter 1.07
Schema_Frame_WoT_References 5432435.766666307 ns/iter 4776755.666667595 ns/iter 1.14
Schema_Frame_OMC_References 29356736.639983863 ns/iter 26842432.692310818 ns/iter 1.09
Schema_Frame_OMC_Locations 25315904.33333501 ns/iter 25272516.357144274 ns/iter 1.00
Schema_Frame_ISO_Language_Locations 80882565.57143073 ns/iter 73963802.1250073 ns/iter 1.09
Schema_Frame_KrakenD_References 56597012.8461511 ns/iter 48226372.07143998 ns/iter 1.17
Schema_Frame_KrakenD_Reachable 511725374.99996907 ns/iter 403316082.99993604 ns/iter 1.27
Schema_Iterator_ISO_Language 2906892.1992890034 ns/iter 2264606.9023568677 ns/iter 1.28
Schema_Frame_ISO_Language_Locations_To_JSON 126535449.99993756 ns/iter 92079979.16666955 ns/iter 1.37
Schema_Tracker_ISO_Language 7700200.683673905 ns/iter 6947582.479592618 ns/iter 1.11
Schema_Tracker_ISO_Language_To_JSON 20366177.419360142 ns/iter 14164369.791667277 ns/iter 1.44
Schema_Format_ISO_Language_To_JSON 100819696.28579047 ns/iter 74973689.66667435 ns/iter 1.34
Schema_Bundle_Meta_2020_12 1619047.7066835836 ns/iter 1311068.3575465048 ns/iter 1.23
Schema_Frame_Many_Resources_References 411435020.99998844 ns/iter 319448353.9999737 ns/iter 1.29
EditorSchema_ForEditor_EmbeddedResources 16404003.299994657 ns/iter 11053731.448304588 ns/iter 1.48
URITemplateRouter_Create 27821.935388582966 ns/iter 25880.64367219533 ns/iter 1.08
URITemplateRouter_Match 177.34054708235234 ns/iter 164.76915829734153 ns/iter 1.08
URITemplateRouter_Match_BasePath 210.1490565672567 ns/iter 193.90256657742705 ns/iter 1.08
URITemplateRouterView_Restore 10161.351469360663 ns/iter 9418.789585971617 ns/iter 1.08
URITemplateRouterView_Match 138.26686298869487 ns/iter 130.8322012503441 ns/iter 1.06
URITemplateRouterView_Match_BasePath 153.78107774591038 ns/iter 149.15239144741108 ns/iter 1.03
URITemplateRouterView_Arguments 524.8367121653885 ns/iter 439.67191204609674 ns/iter 1.19
JSONL_Parse_Large 17333303.0454511 ns/iter 14865142.268291026 ns/iter 1.17
JSONL_Parse_Large_GZIP 16594414.575001791 ns/iter 13111179.725487377 ns/iter 1.27
HTML_Build_Table_100000 83083375.0000137 ns/iter 66456124.999990605 ns/iter 1.25
HTML_Render_Table_100000 5622260.245903906 ns/iter 4461008.811428785 ns/iter 1.26

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: 6076834 Previous: 4707860 Ratio
HTML_Build_Table_100000 63665469.54545397 ns/iter 64732498.72727716 ns/iter 0.98
HTML_Render_Table_100000 5143537.111940301 ns/iter 5668841.176923077 ns/iter 0.91
JSONL_Parse_Large 12955688.4999989 ns/iter 13218573.339621421 ns/iter 0.98
JSONL_Parse_Large_GZIP 14187051.03999855 ns/iter 14348742.142856838 ns/iter 0.99
URITemplateRouter_Create 31842.336732349475 ns/iter 30382.83798302385 ns/iter 1.05
URITemplateRouter_Match 182.28833076569813 ns/iter 179.80326861934515 ns/iter 1.01
URITemplateRouter_Match_BasePath 203.0145433012163 ns/iter 211.53904330423617 ns/iter 0.96
URITemplateRouterView_Restore 7654.650909403092 ns/iter 7806.586104764301 ns/iter 0.98
URITemplateRouterView_Match 138.0465722920877 ns/iter 138.54340763108044 ns/iter 1.00
URITemplateRouterView_Match_BasePath 160.6564823036242 ns/iter 156.74334533149923 ns/iter 1.02
URITemplateRouterView_Arguments 479.79604067669766 ns/iter 483.844397424943 ns/iter 0.99
EditorSchema_ForEditor_EmbeddedResources 13808795.8235282 ns/iter 14060832.039995149 ns/iter 0.98
Schema_Frame_WoT_References 5396102.223078112 ns/iter 5432082.705426161 ns/iter 0.99
Schema_Frame_OMC_References 22404000.19354638 ns/iter 22399195.63332933 ns/iter 1.00
Schema_Frame_OMC_Locations 20817507.08823486 ns/iter 20724556.970589325 ns/iter 1.00
Schema_Frame_ISO_Language_Locations 101658279.16667543 ns/iter 104206424.00000209 ns/iter 0.98
Schema_Frame_KrakenD_References 40496686.882360175 ns/iter 38849131.41176666 ns/iter 1.04
Schema_Frame_KrakenD_Reachable 521954026.00000304 ns/iter 517355884.0001533 ns/iter 1.01
Schema_Iterator_ISO_Language 3393085.735576908 ns/iter 3440512.65116282 ns/iter 0.99
Schema_Frame_ISO_Language_Locations_To_JSON 211229380.6666609 ns/iter 219025086.66668534 ns/iter 0.96
Schema_Tracker_ISO_Language 4594488.118421599 ns/iter 4700848.99999873 ns/iter 0.98
Schema_Tracker_ISO_Language_To_JSON 22015285.93749913 ns/iter 22358317.967744723 ns/iter 0.98
Schema_Format_ISO_Language_To_JSON 109006416.33331059 ns/iter 112779084.49998601 ns/iter 0.97
Schema_Bundle_Meta_2020_12 1781059.5913735207 ns/iter 1810454.8837192652 ns/iter 0.98
Schema_Frame_Many_Resources_References 374251482.4999716 ns/iter 376227059.4999109 ns/iter 0.99
Pointer_Object_Traverse 25.202062259141865 ns/iter 29.062775076663378 ns/iter 0.87
Pointer_Object_Try_Traverse 19.898138248158794 ns/iter 19.885706508608898 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 159.84325585553475 ns/iter 135.9357946929921 ns/iter 1.18
Pointer_Walker_Schema_ISO_Language 3375186.2153108423 ns/iter 3324567.5592418322 ns/iter 1.02
Pointer_Maybe_Tracked_Deeply_Nested/0 1584032.5147394582 ns/iter 1541272.3414095482 ns/iter 1.03
Pointer_Maybe_Tracked_Deeply_Nested/1 1788574.6891190629 ns/iter 1762742.6818182697 ns/iter 1.01
Pointer_Position_Tracker_Get_Deeply_Nested 539.2449281945809 ns/iter 432.71912072644176 ns/iter 1.25
JSON_Array_Of_Objects_Unique 373.84294131472944 ns/iter 405.5588624257374 ns/iter 0.92
JSON_Parse_1 7866.942111223461 ns/iter 7939.180614444168 ns/iter 0.99
JSON_Parse_Real 12640.13403256901 ns/iter 13211.062060757353 ns/iter 0.96
JSON_Parse_Decimal 18175.89875688742 ns/iter 18211.418130324186 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 4670284.417218965 ns/iter 4737458.98657612 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 59.76008929869506 ns/iter 71.72613014007466 ns/iter 0.83
JSON_Equality_Helm_Chart_Lock 164.9016415267842 ns/iter 180.35488919829126 ns/iter 0.91
JSON_Divisible_By_Decimal 241.94966541725012 ns/iter 236.1554156763521 ns/iter 1.02
JSON_String_Equal/10 6.6455054636872175 ns/iter 6.511710420322301 ns/iter 1.02
JSON_String_Equal/100 6.815010596120046 ns/iter 7.033919573239065 ns/iter 0.97
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6237543019089988 ns/iter 0.6252120780099217 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.1960908683763 ns/iter 25.204320247006006 ns/iter 1.00
JSON_String_Fast_Hash/10 1.5580934041916128 ns/iter 1.5590602677127765 ns/iter 1.00
JSON_String_Fast_Hash/100 1.562067473521912 ns/iter 1.558959949645192 ns/iter 1.00
JSON_String_Key_Hash/10 1.2477308168589458 ns/iter 1.2471458125890724 ns/iter 1.00
JSON_String_Key_Hash/100 12.442018960896567 ns/iter 12.446827916838007 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.6821726874783214 ns/iter 3.426697733168207 ns/iter 1.07
JSON_Object_Defines_Miss_Too_Small 3.736729035955983 ns/iter 3.737224969040811 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.1149497810537508 ns/iter 3.1174778504486103 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 0.6241721283978862 ns/iter 0.6227494855956505 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.6263263847103889 ns/iter 0.6233523140635784 ns/iter 1.00
Regex_Period_Asterisk 0.9337309421275615 ns/iter 0.937663505429503 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 0.9334878454385497 ns/iter 0.9347869836468274 ns/iter 1.00
Regex_Period_Plus 0.6233347901120077 ns/iter 0.6228618799081268 ns/iter 1.00
Regex_Period 0.623061822641514 ns/iter 0.6240003610876835 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 0.9344227484845329 ns/iter 0.935104818168294 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 0.9347618580251633 ns/iter 0.9350581140880341 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 0.6228590127993393 ns/iter 0.6239320201397918 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.6252601198973802 ns/iter 0.6231641928572444 ns/iter 1.00
Regex_Caret_X_Hyphen 4.052531672966748 ns/iter 4.049771733295087 ns/iter 1.00
Regex_Period_Md_Dollar 41.29852306504275 ns/iter 30.438642049977418 ns/iter 1.36
Regex_Caret_Slash_Period_Asterisk 4.681162558663588 ns/iter 4.671589017232122 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 0.7781706335183441 ns/iter 0.780496640748342 ns/iter 1.00
Regex_Nested_Backtrack 47.83960174077712 ns/iter 37.73752276575122 ns/iter 1.27

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