Skip to content

Implement a cross-platform mmap class in src/lang/io#2156

Merged
jviotti merged 1 commit intomainfrom
fileview
Jan 1, 2026
Merged

Implement a cross-platform mmap class in src/lang/io#2156
jviotti merged 1 commit intomainfrom
fileview

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Jan 1, 2026

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

@augmentcode
Copy link

augmentcode bot commented Jan 1, 2026

🤖 Augment PR Summary

Summary: This PR introduces sourcemeta::core::FileView, a cross-platform read-only memory-mapped file view.

Changes:

  • Added public API header src/lang/io/include/sourcemeta/core/io_fileview.h defining FileView.
  • Implemented mapping/unmapping in src/lang/io/io_fileview.cc using mmap on POSIX and CreateFileMapping/MapViewOfFile on Windows.
  • Exposed the new API from the umbrella header io.h.
  • Updated the io library target to compile the new implementation source.
  • Added unit tests for FileView::size() and FileView::as<T>() backed by a binary fixture.
  • Moved IO test fixtures into test/io/stubs and updated tests to use STUBS_DIRECTORY.

Technical Notes: FileView is non-copyable/non-movable and maps the entire file as read-only bytes.

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

Fix All in Augment

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

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: 39177dd Previous: 19a1d89 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1126495491846695 ns/iter 3.107532424192905 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1085062904521346 ns/iter 3.106613505553412 ns/iter 1.00
Regex_Period_Asterisk 3.1083737468684167 ns/iter 3.1055210242896742 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.108010571024479 ns/iter 3.1054741887944575 ns/iter 1.00
Regex_Period_Plus 3.1082415096228955 ns/iter 3.0799843857217444 ns/iter 1.01
Regex_Period 3.1082296150140323 ns/iter 3.105466513601818 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.1091522423952025 ns/iter 3.106978058963406 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.115953524291525 ns/iter 3.1089479341216326 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.1137710732535306 ns/iter 3.1066805813744987 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1078666333018843 ns/iter 3.1075978402915223 ns/iter 1.00
Regex_Caret_X_Hyphen 10.265235405478519 ns/iter 10.258034485726045 ns/iter 1.00
Regex_Period_Md_Dollar 27.224422822137456 ns/iter 27.21684879749233 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 5.955637617104512 ns/iter 6.216900471612724 ns/iter 0.96
Regex_Caret_Period_Range_Dollar 3.1950282508883463 ns/iter 4.03858529133568 ns/iter 0.79
Regex_Nested_Backtrack 49.77873728848004 ns/iter 52.84941544467464 ns/iter 0.94
JSON_Array_Of_Objects_Unique 415.6844262100097 ns/iter 414.4531873241353 ns/iter 1.00
JSON_Parse_1 30685.59488123533 ns/iter 29226.272317139654 ns/iter 1.05
JSON_Parse_Real 37666.716868112904 ns/iter 37570.90426222677 ns/iter 1.00
JSON_Parse_Decimal 129060.63710123672 ns/iter 128494.91897343368 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 63.6595870218597 ns/iter 55.81311983160711 ns/iter 1.14
JSON_Equality_Helm_Chart_Lock 154.72054833485052 ns/iter 154.63338457471676 ns/iter 1.00
JSON_String_Equal/10 6.559177949888448 ns/iter 6.533788816248626 ns/iter 1.00
JSON_String_Equal/100 7.168111046402839 ns/iter 6.896509415231262 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9357761448610048 ns/iter 0.9342870049862199 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.261482411912878 ns/iter 10.255996747200411 ns/iter 1.00
JSON_String_Fast_Hash/10 2.177103327265711 ns/iter 2.1761861316489193 ns/iter 1.00
JSON_String_Fast_Hash/100 2.176155042972184 ns/iter 2.1769172571759894 ns/iter 1.00
JSON_String_Key_Hash/10 1.8676321364156763 ns/iter 1.8680138613891324 ns/iter 1.00
JSON_String_Key_Hash/100 6.534494414117538 ns/iter 6.530210234165565 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.7387697979953782 ns/iter 3.735870639622494 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7341502845624093 ns/iter 3.7330301083044617 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7368119015341144 ns/iter 3.733794805953628 ns/iter 1.00
Pointer_Object_Traverse 44.02728981102562 ns/iter 43.89750690785664 ns/iter 1.00
Pointer_Object_Try_Traverse 52.61175411974547 ns/iter 52.60804401720846 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 349.7906350421032 ns/iter 349.45489225363747 ns/iter 1.00
Schema_Frame_WoT_References 7339640.729167485 ns/iter 7290033.135416725 ns/iter 1.01
Schema_Frame_OMC_References 34023395.00000835 ns/iter 37733123.57894778 ns/iter 0.90
Schema_Frame_OMC_Locations 31739526.40908986 ns/iter 35285442.900004685 ns/iter 0.90
Schema_Frame_ISO_Language_Locations 153553104.25002244 ns/iter 162257638.2500256 ns/iter 0.95
Schema_Iterator_ISO_Language 3862824.921787647 ns/iter 3859297.9120884202 ns/iter 1.00
Schema_PointerWalker_ISO_Language 4793478.664382373 ns/iter 5020706.699999664 ns/iter 0.95
Schema_Frame_ISO_Language_Locations_To_JSON 153293289.79996717 ns/iter 148339385.99999782 ns/iter 1.03
Schema_Tracker_ISO_Language 46458597.73333238 ns/iter 47560094.78571904 ns/iter 0.98
Schema_Tracker_ISO_Language_To_JSON 21337410.1818207 ns/iter 24010408.51724043 ns/iter 0.89
Schema_Format_ISO_Language_To_JSON 166401823.49999577 ns/iter 168106747.75001645 ns/iter 0.99
Schema_Bundle_Meta_2020_12 2191719.5250004795 ns/iter 2177381.6552811083 ns/iter 1.01
Alterschema_Check_Readibility_ISO_Language_Set_3 284564727.3333422 ns/iter 294231451.9999627 ns/iter 0.97
Alterschema_Check_Readibility_OMC 38947214.777774915 ns/iter 42643832.3124998 ns/iter 0.91

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
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: 39177dd Previous: 19a1d89 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.5738424507003501 ns/iter 1.7851743195062855 ns/iter 0.88
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5767121364933536 ns/iter 1.599011971289511 ns/iter 0.99
Regex_Period_Asterisk 1.6407425292323192 ns/iter 1.5858447520324253 ns/iter 1.03
Regex_Group_Period_Asterisk_Group 1.6459309419658066 ns/iter 1.5783737651745129 ns/iter 1.04
Regex_Period_Plus 1.9706393476445478 ns/iter 1.8909936709348543 ns/iter 1.04
Regex_Period 1.9773198175769093 ns/iter 2.0989825842353973 ns/iter 0.94
Regex_Caret_Period_Plus_Dollar 2.0480524591425002 ns/iter 2.071685212506835 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 2.041801988473097 ns/iter 2.0956198522856635 ns/iter 0.97
Regex_Caret_Period_Asterisk_Dollar 1.6279509436267219 ns/iter 1.7379369815568533 ns/iter 0.94
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5788348764425733 ns/iter 1.7636348164495221 ns/iter 0.90
Regex_Caret_X_Hyphen 6.1796743977887285 ns/iter 6.469969831586066 ns/iter 0.96
Regex_Period_Md_Dollar 19.691024195285873 ns/iter 20.260392253152535 ns/iter 0.97
Regex_Caret_Slash_Period_Asterisk 5.365480271478174 ns/iter 5.387012250927113 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.7086688721951382 ns/iter 1.7554087835606593 ns/iter 0.97
Regex_Nested_Backtrack 27.931331324370433 ns/iter 27.999688950000166 ns/iter 1.00
JSON_Array_Of_Objects_Unique 345.0320100850646 ns/iter 332.3582914835398 ns/iter 1.04
JSON_Parse_1 20427.02256051681 ns/iter 20263.495546218546 ns/iter 1.01
JSON_Parse_Real 23245.469508547427 ns/iter 23726.912796603887 ns/iter 0.98
JSON_Parse_Decimal 232565.08344324707 ns/iter 231198.5954173595 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 54.55248089090727 ns/iter 54.23554037402363 ns/iter 1.01
JSON_Equality_Helm_Chart_Lock 130.32676842033217 ns/iter 128.246499512134 ns/iter 1.02
JSON_String_Equal/10 6.599411126957737 ns/iter 7.180607943147722 ns/iter 0.92
JSON_String_Equal/100 6.329809776857746 ns/iter 6.763272521549633 ns/iter 0.94
JSON_String_Equal_Small_By_Perfect_Hash/10 0.32923290647674847 ns/iter 0.3322532895283559 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.4273665039550174 ns/iter 3.412105301473405 ns/iter 1.00
JSON_String_Fast_Hash/10 2.3692012516250376 ns/iter 2.513126055099275 ns/iter 0.94
JSON_String_Fast_Hash/100 1.9364800812093113 ns/iter 2.1566568880630843 ns/iter 0.90
JSON_String_Key_Hash/10 1.2748265522359339 ns/iter 1.4642984831795827 ns/iter 0.87
JSON_String_Key_Hash/100 2.0940438305241034 ns/iter 2.2662534106023706 ns/iter 0.92
JSON_Object_Defines_Miss_Same_Length 2.730771324820231 ns/iter 2.9770061136190398 ns/iter 0.92
JSON_Object_Defines_Miss_Too_Small 2.665172126760296 ns/iter 3.0290299148597493 ns/iter 0.88
JSON_Object_Defines_Miss_Too_Large 2.699914506522558 ns/iter 2.8362254512402214 ns/iter 0.95
Pointer_Object_Traverse 14.381492320573813 ns/iter 15.30701595273923 ns/iter 0.94
Pointer_Object_Try_Traverse 18.833376094230516 ns/iter 20.83579339468899 ns/iter 0.90
Pointer_Push_Back_Pointer_To_Weak_Pointer 152.6912526679683 ns/iter 166.68293769084917 ns/iter 0.92
Schema_Frame_WoT_References 5821030.405405172 ns/iter 5884230.140186319 ns/iter 0.99
Schema_Frame_OMC_References 29141564.9999999 ns/iter 32323541.63636005 ns/iter 0.90
Schema_Frame_OMC_Locations 29559959.96153696 ns/iter 30518676.136363283 ns/iter 0.97
Schema_Frame_ISO_Language_Locations 104966321.42857315 ns/iter 109562449.99999854 ns/iter 0.96
Schema_Iterator_ISO_Language 3917219.675392745 ns/iter 3488556.6111109606 ns/iter 1.12
Schema_PointerWalker_ISO_Language 5966414.300813056 ns/iter 5969748.931623408 ns/iter 1.00
Schema_Frame_ISO_Language_Locations_To_JSON 72305149.99999969 ns/iter 71731295.79999796 ns/iter 1.01
Schema_Tracker_ISO_Language 38711888.88888987 ns/iter 38135421.277780145 ns/iter 1.02
Schema_Tracker_ISO_Language_To_JSON 13908103.312499994 ns/iter 14231593.551021526 ns/iter 0.98
Schema_Format_ISO_Language_To_JSON 107571339.14286701 ns/iter 113399187.66668689 ns/iter 0.95
Schema_Bundle_Meta_2020_12 1733386.7067305367 ns/iter 1618278.1980148212 ns/iter 1.07
Alterschema_Check_Readibility_ISO_Language_Set_3 213315177.2499957 ns/iter 184414010.24998072 ns/iter 1.16
Alterschema_Check_Readibility_OMC 39620810.16666414 ns/iter 36975535.105266556 ns/iter 1.07

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 (windows/msvc)

Details
Benchmark suite Current: 39177dd Previous: 19a1d89 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.108076034121365 ns/iter 3.9102017857126317 ns/iter 1.05
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.07840585549744 ns/iter 3.5514389117982836 ns/iter 1.15
Regex_Period_Asterisk 4.708091729511897 ns/iter 3.973496935757107 ns/iter 1.18
Regex_Group_Period_Asterisk_Group 4.401076874999887 ns/iter 3.665300663096396 ns/iter 1.20
Regex_Period_Plus 4.967067999999699 ns/iter 4.18636767109732 ns/iter 1.19
Regex_Period 5.408332999999175 ns/iter 4.489547106230514 ns/iter 1.20
Regex_Caret_Period_Plus_Dollar 8.54638058035714 ns/iter 4.115615513394947 ns/iter 2.08
Regex_Caret_Group_Period_Plus_Group_Dollar 4.944835000000012 ns/iter 3.7934169642852567 ns/iter 1.30
Regex_Caret_Period_Asterisk_Dollar 4.762368983842242 ns/iter 3.738156568340609 ns/iter 1.27
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.113463124999583 ns/iter 3.497863599214585 ns/iter 1.18
Regex_Caret_X_Hyphen 7.5411439732141 ns/iter 7.404215000001386 ns/iter 1.02
Regex_Period_Md_Dollar 35.45682543221125 ns/iter 38.6681305803549 ns/iter 0.92
Regex_Caret_Slash_Period_Asterisk 7.161532366071199 ns/iter 7.993459785743888 ns/iter 0.90
Regex_Caret_Period_Range_Dollar 4.087692522321313 ns/iter 4.290080349479869 ns/iter 0.95
Regex_Nested_Backtrack 110.57590624998782 ns/iter 113.70775669640969 ns/iter 0.97
JSON_Array_Of_Objects_Unique 470.74309614799 ns/iter 479.2103236607963 ns/iter 0.98
JSON_Parse_1 72805.94642857353 ns/iter 91471.81919639178 ns/iter 0.80
JSON_Parse_Real 89244.301593683 ns/iter 122009.82142855668 ns/iter 0.73
JSON_Parse_Decimal 347006.77618072595 ns/iter 388946.26719055884 ns/iter 0.89
JSON_Fast_Hash_Helm_Chart_Lock 61.7779100000007 ns/iter 43.05423048734221 ns/iter 1.43
JSON_Equality_Helm_Chart_Lock 289.7518337330638 ns/iter 243.19578571440357 ns/iter 1.19
JSON_String_Equal/10 13.532764285715514 ns/iter 10.576346874998421 ns/iter 1.28
JSON_String_Equal/100 14.18262181168566 ns/iter 13.446253571430589 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1973893749997586 ns/iter 1.7424164520588843 ns/iter 1.26
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.974444642856449 ns/iter 9.684771385335749 ns/iter 1.34
JSON_String_Fast_Hash/10 3.1930368799889752 ns/iter 2.3077855331382406 ns/iter 1.38
JSON_String_Fast_Hash/100 3.19510089285708 ns/iter 2.193021562499098 ns/iter 1.46
JSON_String_Key_Hash/10 3.8417014217115226 ns/iter 2.6682035008899723 ns/iter 1.44
JSON_String_Key_Hash/100 13.77537321428487 ns/iter 14.112537500003393 ns/iter 0.98
JSON_Object_Defines_Miss_Same_Length 4.915830536811304 ns/iter 5.090564285714955 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Small 3.788779726222628 ns/iter 4.319364375001555 ns/iter 0.88
JSON_Object_Defines_Miss_Too_Large 4.710143314085222 ns/iter 5.0829209999983505 ns/iter 0.93
Pointer_Object_Traverse 54.92942857142477 ns/iter 51.08083999998598 ns/iter 1.08
Pointer_Object_Try_Traverse 69.59400000000642 ns/iter 63.256071428595206 ns/iter 1.10
Pointer_Push_Back_Pointer_To_Weak_Pointer 156.5121023878671 ns/iter 178.84886465499747 ns/iter 0.88
Schema_Frame_WoT_References 16709236.585364943 ns/iter 17462486.486483857 ns/iter 0.96
Schema_Frame_OMC_References 75808777.77777712 ns/iter 81276845.45454691 ns/iter 0.93
Schema_Frame_OMC_Locations 70319844.44443475 ns/iter 71748572.72726017 ns/iter 0.98
Schema_Frame_ISO_Language_Locations 287084499.9999918 ns/iter 290597600.00018287 ns/iter 0.99
Schema_Iterator_ISO_Language 8156878.666666973 ns/iter 9575738.666668864 ns/iter 0.85
Schema_PointerWalker_ISO_Language 9852077.333333302 ns/iter 10715110.714288909 ns/iter 0.92
Schema_Frame_ISO_Language_Locations_To_JSON 223914633.33334136 ns/iter 220741133.33322504 ns/iter 1.01
Schema_Tracker_ISO_Language 100235633.33334096 ns/iter 103439933.33329612 ns/iter 0.97
Schema_Tracker_ISO_Language_To_JSON 52790679.99999825 ns/iter 53798559.999995634 ns/iter 0.98
Schema_Format_ISO_Language_To_JSON 289954949.99998075 ns/iter 299558949.9998914 ns/iter 0.97
Schema_Bundle_Meta_2020_12 3694492.8205107665 ns/iter 3751293.8547631707 ns/iter 0.98
Alterschema_Check_Readibility_ISO_Language_Set_3 412669699.9999808 ns/iter 405394800.00006735 ns/iter 1.02
Alterschema_Check_Readibility_OMC 77409727.27273485 ns/iter 75815311.11115207 ns/iter 1.02

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: 39177dd Previous: 19a1d89 Ratio
Alterschema_Check_Readibility_ISO_Language_Set_3 293599792.00000906 ns/iter 309265267.4999954 ns/iter 0.95
Alterschema_Check_Readibility_OMC 42795069.43749567 ns/iter 48019651.06666254 ns/iter 0.89
Schema_Frame_WoT_References 7957110.261363647 ns/iter 8160863.860465788 ns/iter 0.98
Schema_Frame_OMC_References 37577642.44444515 ns/iter 41995143.8823519 ns/iter 0.89
Schema_Frame_OMC_Locations 34842623.55000283 ns/iter 39059161.55555487 ns/iter 0.89
Schema_Frame_ISO_Language_Locations 187227265.25001577 ns/iter 196103015.5000003 ns/iter 0.95
Schema_Iterator_ISO_Language 4595733.708609392 ns/iter 4691455.050724603 ns/iter 0.98
Schema_PointerWalker_ISO_Language 4384982.0562506635 ns/iter 4547116.2727276115 ns/iter 0.96
Schema_Frame_ISO_Language_Locations_To_JSON 277942711.6666587 ns/iter 294188735.66669387 ns/iter 0.94
Schema_Tracker_ISO_Language 47503273.00000663 ns/iter 53158107.69231506 ns/iter 0.89
Schema_Tracker_ISO_Language_To_JSON 34579682.52381047 ns/iter 39139403.9444448 ns/iter 0.88
Schema_Format_ISO_Language_To_JSON 189764791.2499565 ns/iter 179009543.5000012 ns/iter 1.06
Schema_Bundle_Meta_2020_12 2348184.648828319 ns/iter 2381369.904755616 ns/iter 0.99
Pointer_Object_Traverse 46.791137168407495 ns/iter 49.41952646356252 ns/iter 0.95
Pointer_Object_Try_Traverse 22.731631278773374 ns/iter 23.56992114622912 ns/iter 0.96
Pointer_Push_Back_Pointer_To_Weak_Pointer 165.9228127938671 ns/iter 142.6556358228488 ns/iter 1.16
JSON_Array_Of_Objects_Unique 379.93746191183294 ns/iter 383.1492955889888 ns/iter 0.99
JSON_Parse_1 32595.054616569414 ns/iter 32775.28507189742 ns/iter 0.99
JSON_Parse_Real 43855.16391089695 ns/iter 42871.24429605582 ns/iter 1.02
JSON_Parse_Decimal 154406.5648046154 ns/iter 157883.25428700325 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 56.133291099990856 ns/iter 54.76566070001354 ns/iter 1.02
JSON_Equality_Helm_Chart_Lock 155.0287086589045 ns/iter 154.77759716377076 ns/iter 1.00
JSON_String_Equal/10 7.269886560838479 ns/iter 6.337648984100951 ns/iter 1.15
JSON_String_Equal/100 7.895744909705076 ns/iter 6.968336013041638 ns/iter 1.13
JSON_String_Equal_Small_By_Perfect_Hash/10 0.933873615848831 ns/iter 0.9336525879007004 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 13.849349736709659 ns/iter 13.745288895816104 ns/iter 1.01
JSON_String_Fast_Hash/10 1.903918304867709 ns/iter 1.905603085073323 ns/iter 1.00
JSON_String_Fast_Hash/100 1.9032271176592581 ns/iter 1.9052170434409117 ns/iter 1.00
JSON_String_Key_Hash/10 1.5558594759274285 ns/iter 1.5567917437202217 ns/iter 1.00
JSON_String_Key_Hash/100 12.427666172131778 ns/iter 12.428384734465551 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.487570760028498 ns/iter 2.5278251097971243 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Small 2.4874745473786013 ns/iter 2.6082236907951355 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Large 2.498991309611856 ns/iter 2.566498977222349 ns/iter 0.97
Regex_Lower_S_Or_Upper_S_Asterisk 3.107457472942353 ns/iter 3.1216629565132763 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1086487051704093 ns/iter 3.1158915748251936 ns/iter 1.00
Regex_Period_Asterisk 3.107532789143084 ns/iter 3.1235254448039886 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 3.111663506100421 ns/iter 3.132472375141052 ns/iter 0.99
Regex_Period_Plus 3.5046597791098786 ns/iter 3.422768123119802 ns/iter 1.02
Regex_Period 3.417343254761026 ns/iter 3.4237149365395045 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.4197401214777328 ns/iter 3.4184288538121876 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.4189436958433275 ns/iter 3.4317598680874553 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 4.351156100209558 ns/iter 4.35792356085169 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.365279002152771 ns/iter 4.35486115136859 ns/iter 1.00
Regex_Caret_X_Hyphen 13.062058819390684 ns/iter 13.068243501364268 ns/iter 1.00
Regex_Period_Md_Dollar 35.75969747596111 ns/iter 42.203458041785865 ns/iter 0.85
Regex_Caret_Slash_Period_Asterisk 9.323734819069276 ns/iter 9.330455255765925 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.352069150892121 ns/iter 4.356417927998906 ns/iter 1.00
Regex_Nested_Backtrack 61.030388976541964 ns/iter 64.92252505672931 ns/iter 0.94

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/gcc)

Details
Benchmark suite Current: 39177dd Previous: 19a1d89 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.1369192191194535 ns/iter 2.5182951245803826 ns/iter 0.85
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.159615609388163 ns/iter 2.2662803765018182 ns/iter 0.95
Regex_Period_Asterisk 2.1561668209062104 ns/iter 2.2217825529691337 ns/iter 0.97
Regex_Group_Period_Asterisk_Group 2.2397517614694387 ns/iter 2.183856005171076 ns/iter 1.03
Regex_Period_Plus 2.299550815330878 ns/iter 2.2467155871241586 ns/iter 1.02
Regex_Period 2.3082592142403455 ns/iter 2.2373904824546296 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 2.3028445885886453 ns/iter 2.239001722622773 ns/iter 1.03
Regex_Caret_Group_Period_Plus_Group_Dollar 2.3097562620320513 ns/iter 2.1759761223637075 ns/iter 1.06
Regex_Caret_Period_Asterisk_Dollar 2.1798991490867814 ns/iter 2.0691193240226644 ns/iter 1.05
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.064532731173299 ns/iter 2.0678892079888453 ns/iter 1.00
Regex_Caret_X_Hyphen 6.345870975550354 ns/iter 6.275316709166423 ns/iter 1.01
Regex_Period_Md_Dollar 20.85162977054476 ns/iter 20.79768943315824 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 4.761388129584099 ns/iter 4.72432068207751 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 2.167556446273495 ns/iter 2.1863537444968957 ns/iter 0.99
Regex_Nested_Backtrack 44.34827385469506 ns/iter 45.955886131845986 ns/iter 0.97
JSON_Array_Of_Objects_Unique 260.0892944070426 ns/iter 270.81053659592897 ns/iter 0.96
JSON_Parse_1 23095.69887294891 ns/iter 23532.77852089819 ns/iter 0.98
JSON_Parse_Real 24755.531265853933 ns/iter 24585.96147739584 ns/iter 1.01
JSON_Parse_Decimal 329689.0267411796 ns/iter 263480.9938019621 ns/iter 1.25
JSON_Fast_Hash_Helm_Chart_Lock 33.89000896628637 ns/iter 32.72897166399209 ns/iter 1.04
JSON_Equality_Helm_Chart_Lock 128.81880245632104 ns/iter 124.58535266754731 ns/iter 1.03
JSON_String_Equal/10 6.332154184279791 ns/iter 5.679640350278691 ns/iter 1.11
JSON_String_Equal/100 6.266349456045044 ns/iter 5.459738454846699 ns/iter 1.15
JSON_String_Equal_Small_By_Perfect_Hash/10 0.807210124175441 ns/iter 0.789085490404678 ns/iter 1.02
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.687681740440262 ns/iter 3.666086532902545 ns/iter 1.01
JSON_String_Fast_Hash/10 1.929874266907946 ns/iter 1.9602475127223549 ns/iter 0.98
JSON_String_Fast_Hash/100 1.9234548963360585 ns/iter 1.8562957512519092 ns/iter 1.04
JSON_String_Key_Hash/10 1.4768548894100622 ns/iter 1.4354108609765377 ns/iter 1.03
JSON_String_Key_Hash/100 2.7654732204912054 ns/iter 2.643675709618619 ns/iter 1.05
JSON_Object_Defines_Miss_Same_Length 1.844767731579545 ns/iter 1.8635745997394364 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 1.8013499496876548 ns/iter 1.8924682585757493 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Large 1.865725024120544 ns/iter 1.8655704399994466 ns/iter 1.00
Pointer_Object_Traverse 51.69115561687007 ns/iter 51.68862142319428 ns/iter 1.00
Pointer_Object_Try_Traverse 36.47343095908717 ns/iter 36.63756640243772 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 158.5727292850749 ns/iter 154.77207032877763 ns/iter 1.02
Schema_Frame_WoT_References 8533283.642360142 ns/iter 7531508.155491041 ns/iter 1.13
Schema_Frame_OMC_References 39415864.38347311 ns/iter 37553624.10294382 ns/iter 1.05
Schema_Frame_OMC_Locations 37575207.25852565 ns/iter 37188267.70782471 ns/iter 1.01
Schema_Frame_ISO_Language_Locations 173772752.28500366 ns/iter 157133245.46813965 ns/iter 1.11
Schema_Iterator_ISO_Language 4580634.435017903 ns/iter 3741694.7515387284 ns/iter 1.22
Schema_PointerWalker_ISO_Language 9011024.310265059 ns/iter 8257766.102635583 ns/iter 1.09
Schema_Frame_ISO_Language_Locations_To_JSON 147646784.78240967 ns/iter 147637987.13684082 ns/iter 1.00
Schema_Tracker_ISO_Language 38951661.85167101 ns/iter 39611992.083097756 ns/iter 0.98
Schema_Tracker_ISO_Language_To_JSON 24166440.963745117 ns/iter 24943470.95489502 ns/iter 0.97
Schema_Format_ISO_Language_To_JSON 150465822.21984863 ns/iter 167251050.47225952 ns/iter 0.90
Schema_Bundle_Meta_2020_12 1808151.5278648492 ns/iter 1854765.6106167152 ns/iter 0.97
Alterschema_Check_Readibility_ISO_Language_Set_3 195918877.91951498 ns/iter 207677602.76794434 ns/iter 0.94
Alterschema_Check_Readibility_OMC 38519051.339891225 ns/iter 41397389.243630804 ns/iter 0.93

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

@jviotti jviotti merged commit f1d58ad into main Jan 1, 2026
13 checks passed
@jviotti jviotti deleted the fileview branch January 1, 2026 17:46
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