Skip to content

Add process self-inspection primitives to src/lang/process - #2767

Merged
jviotti merged 7 commits into
mainfrom
process-improvements
Aug 25, 2026
Merged

Add process self-inspection primitives to src/lang/process#2767
jviotti merged 7 commits into
mainfrom
process-improvements

Conversation

@jviotti

@jviotti jviotti commented Aug 25, 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>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@cubic-dev-ai cubic-dev-ai 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.

All reported issues were addressed across 7 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread test/process/process_descriptors_test.cc Outdated
Comment thread test/process/process_usage_test.cc

@cubic-dev-ai cubic-dev-ai 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.

1 issue found across 3 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/lang/process/include/sourcemeta/core/process_usage.h">

<violation number="1" location="src/lang/process/include/sourcemeta/core/process_usage.h:52">
P2: The example calls `.value()` on an optional that can be empty. When the platform cannot measure CPU time (as documented at line 17-19), `.value()` throws `std::bad_optional_access`. Check `has_value()` before calling `.value()`, or use `value_or()` with a fallback.</violation>
</file>

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

/// #include <cassert>
///
/// const auto usage{sourcemeta::core::process_usage()};
/// assert(usage.cpu_time.value() >= std::chrono::nanoseconds::zero());

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: The example calls .value() on an optional that can be empty. When the platform cannot measure CPU time (as documented at line 17-19), .value() throws std::bad_optional_access. Check has_value() before calling .value(), or use value_or() with a fallback.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/lang/process/include/sourcemeta/core/process_usage.h, line 52:

<comment>The example calls `.value()` on an optional that can be empty. When the platform cannot measure CPU time (as documented at line 17-19), `.value()` throws `std::bad_optional_access`. Check `has_value()` before calling `.value()`, or use `value_or()` with a fallback.</comment>

<file context>
@@ -45,10 +45,11 @@ struct ProcessDescriptors {
 ///
 /// const auto usage{sourcemeta::core::process_usage()};
-/// assert(usage.cpu_seconds.value() >= 0.0);
+/// assert(usage.cpu_time.value() >= std::chrono::nanoseconds::zero());
 /// ```
 SOURCEMETA_CORE_PROCESS_EXPORT
</file context>
Suggested change
/// assert(usage.cpu_time.value() >= std::chrono::nanoseconds::zero());
/// assert(!usage.cpu_time.has_value() || usage.cpu_time.value() >= std::chrono::nanoseconds::zero());

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

@cubic-dev-ai cubic-dev-ai 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.

2 issues found and verified against the latest diff

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/lang/process/CMakeLists.txt">

<violation number="1" location="src/lang/process/CMakeLists.txt:10">
P2: When `SOURCEMETA_CORE_LANG_NUMERIC=OFF`, the process target still references the nonexistent `sourcemeta::core::numeric` target. Make the dependency/platform selection consistent, or require and validate numeric as a process prerequisite before adding this link.</violation>

<violation number="2" location="src/lang/process/CMakeLists.txt:12">
P2: The WIN32 guard does not match the platforms that actually use psapi. usage.cc calls GetProcessMemoryInfo/GetProcessHandleCount only when `_WIN32 && !__MSYS__ && !__CYGWIN__ && !__MINGW32__ && !__MINGW64__`, but `if(WIN32)` in CMake is true for MinGW, MSYS, and Cygwin builds as well. On Cygwin especially there is no psapi import library, so this unconditional link fails a build that otherwise compiles the POSIX branch. Guard the link with the same restrictive condition (e.g. `if(WIN32 AND NOT MINGW AND NOT CYGWIN AND NOT MSYS)`) to keep it in sync with the code that consumes it.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread src/lang/process/usage.cc Outdated
Comment thread src/lang/process/CMakeLists.txt Outdated
target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::text)
target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::numeric)

if(WIN32)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: The WIN32 guard does not match the platforms that actually use psapi. usage.cc calls GetProcessMemoryInfo/GetProcessHandleCount only when _WIN32 && !__MSYS__ && !__CYGWIN__ && !__MINGW32__ && !__MINGW64__, but if(WIN32) in CMake is true for MinGW, MSYS, and Cygwin builds as well. On Cygwin especially there is no psapi import library, so this unconditional link fails a build that otherwise compiles the POSIX branch. Guard the link with the same restrictive condition (e.g. if(WIN32 AND NOT MINGW AND NOT CYGWIN AND NOT MSYS)) to keep it in sync with the code that consumes it.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/lang/process/CMakeLists.txt, line 12:

<comment>The WIN32 guard does not match the platforms that actually use psapi. usage.cc calls GetProcessMemoryInfo/GetProcessHandleCount only when `_WIN32 && !__MSYS__ && !__CYGWIN__ && !__MINGW32__ && !__MINGW64__`, but `if(WIN32)` in CMake is true for MinGW, MSYS, and Cygwin builds as well. On Cygwin especially there is no psapi import library, so this unconditional link fails a build that otherwise compiles the POSIX branch. Guard the link with the same restrictive condition (e.g. `if(WIN32 AND NOT MINGW AND NOT CYGWIN AND NOT MSYS)`) to keep it in sync with the code that consumes it.</comment>

<file context>
@@ -1,9 +1,14 @@
 target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::text)
+target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::numeric)
+
+if(WIN32)
+  target_link_libraries(sourcemeta_core_process PRIVATE psapi)
+endif()
</file context>

endif()

target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::text)
target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::numeric)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: When SOURCEMETA_CORE_LANG_NUMERIC=OFF, the process target still references the nonexistent sourcemeta::core::numeric target. Make the dependency/platform selection consistent, or require and validate numeric as a process prerequisite before adding this link.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/lang/process/CMakeLists.txt, line 10:

<comment>When `SOURCEMETA_CORE_LANG_NUMERIC=OFF`, the process target still references the nonexistent `sourcemeta::core::numeric` target. Make the dependency/platform selection consistent, or require and validate numeric as a process prerequisite before adding this link.</comment>

<file context>
@@ -1,9 +1,14 @@
 endif()
 
 target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::text)
+target_link_libraries(sourcemeta_core_process PRIVATE sourcemeta::core::numeric)
+
+if(WIN32)
</file context>

@augmentcode

augmentcode Bot commented Aug 25, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Adds process self-inspection primitives to the process component.

  • Introduces ProcessUsage and ProcessDescriptors result types.
  • Exports APIs for CPU time, resident memory, virtual memory, descriptor counts, and process start time.
  • Implements native backends for Windows, macOS, and Linux, with empty optional results elsewhere.
  • Parses Linux /proc data for usage, descriptor, boot-time, and start-time information.
  • Uses Windows process/PSAPI calls and Darwin task/proc APIs for equivalent data.
  • Adds platform link dependencies and package-component exports for numeric and PSAPI support.
  • Adds unit coverage for reported usage, descriptor limits/counts, and process start times.
Technical Notes: The APIs are noexcept and express unavailable platform measurements with std::optional.

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

Fix All in Augment

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

Comment thread src/lang/process/usage.cc
counters.cb = sizeof(counters);
if (GetProcessMemoryInfo(GetCurrentProcess(), &counters, sizeof(counters)) !=
0) {
result.resident_bytes = counters.WorkingSetSize;

@augmentcode augmentcode Bot Aug 25, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PagefileUsage is the process's committed/private pagefile charge, not the size of its mapped virtual address space. Assigning it to virtual_bytes therefore omits executable/file mappings and reserved regions on Windows, violating the documented metric and making this result incomparable with the Linux vsize implementation.

Severity: medium

Fix This in Augment

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

Comment thread test/process/process_usage_test.cc Outdated

TEST(processor_time_is_reported) {
const auto usage{sourcemeta::core::process_usage()};
EXPECT_TRUE(usage.cpu_seconds.has_value());

@augmentcode augmentcode Bot Aug 25, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The implementation deliberately returns empty optionals on platforms other than Windows, macOS, and Linux, but this assertion is compiled for every non-Windows target. Consequently, the BSD family—which the top-level CMake explicitly detects—will fail these new tests despite using the intended fallback behavior. Other locations where this applies: test/process/process_descriptors_test.cc:6, test/process/process_descriptors_test_unix.cc:8, test/process/process_start_time_test.cc:8, test/process/process_usage_test_unix.cc:6.

Severity: medium

Fix This in Augment

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

@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: 7e01db3 Previous: 0b5334a Ratio
JOSE_VerifySignature_RS256 22213.378339167575 ns/iter 21966.63159899702 ns/iter 1.01
JOSE_VerifySignature_ES512 578140.5544554434 ns/iter 574744.4312757268 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Locations 36341870.421053775 ns/iter 36271768.05263251 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Locations 4222992.166666762 ns/iter 4149380.3273810605 ns/iter 1.02
GZIP_Compress_ISO_Language_Set_3_Schema 2022014.9106627638 ns/iter 2016423.4927954052 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 383709.0459518577 ns/iter 380931.61425462255 ns/iter 1.01
HTML_Build_Table_100000 56438875.363635466 ns/iter 55642241.363637425 ns/iter 1.01
HTML_Render_Table_100000 1945419.2051282306 ns/iter 1843678.4308510732 ns/iter 1.06
JSONLD_Catalog_Annotation_List_Populate 681368.8132295664 ns/iter 671558.792870909 ns/iter 1.01
JSONLD_Catalog_Materialize 3554566.848958422 ns/iter 3477403.265000021 ns/iter 1.02
JSONL_Parse_Large 10130708.95714309 ns/iter 10174200.205882588 ns/iter 1.00
JSONL_Parse_Large_GZIP 11495543.885246206 ns/iter 11563916.60655755 ns/iter 0.99
URITemplateRouter_Create 20892.106129515167 ns/iter 20673.80444692805 ns/iter 1.01
URITemplateRouter_Match 151.38115363664684 ns/iter 157.5511443264475 ns/iter 0.96
URITemplateRouter_Match_BasePath 184.50214913880842 ns/iter 184.98714313752544 ns/iter 1.00
URITemplateRouterView_Restore 8816.201906319 ns/iter 8294.512511191158 ns/iter 1.06
URITemplateRouterView_Match 143.66573068399939 ns/iter 123.63954810364935 ns/iter 1.16
URITemplateRouterView_Match_BasePath 143.39789439009417 ns/iter 143.51312052262367 ns/iter 1.00
URITemplateRouterView_Arguments 469.5657600216349 ns/iter 474.46807664272984 ns/iter 0.99
JSONPath_Descendant_Filter_Nested 1668.8192841634173 ns/iter 1634.3500997580286 ns/iter 1.02
Pointer_Object_Traverse 25.00069219359046 ns/iter 24.675609794868485 ns/iter 1.01
Pointer_Object_Try_Traverse 23.059943417149277 ns/iter 23.067907805478605 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 128.7017089463008 ns/iter 127.05339212343027 ns/iter 1.01
Pointer_Walker_Schema_ISO_Language 1507621.5611353235 ns/iter 1408838.1605691486 ns/iter 1.07
Pointer_Maybe_Tracked_Deeply_Nested/0 1206934.7238421382 ns/iter 1197585.8862479497 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 1699968.5060533248 ns/iter 1680412.795673137 ns/iter 1.01
Pointer_Position_Tracker_Get_Deeply_Nested 600.1137220592739 ns/iter 600.1312338184777 ns/iter 1.00
JSON_Array_Of_Objects_Unique 467.55865573738504 ns/iter 446.87132014145027 ns/iter 1.05
JSON_Parse_1 5203.982431201991 ns/iter 5220.168682297385 ns/iter 1.00
JSON_Parse_Real 5657.029914356815 ns/iter 5530.95597767298 ns/iter 1.02
JSON_Parse_Decimal 10014.086385367276 ns/iter 10038.780124579152 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 3619874.186528747 ns/iter 3615129.450777216 ns/iter 1.00
JSON_Parse_Integer 3747.5188057135642 ns/iter 3731.2347666874243 ns/iter 1.00
JSON_Parse_String_NonSSO_Plain 3390.031425804918 ns/iter 3407.442396111377 ns/iter 0.99
JSON_Parse_String_SSO_Plain 2977.3411961176475 ns/iter 2985.127081903396 ns/iter 1.00
JSON_Parse_String_Escape_Heavy 16497.93195803324 ns/iter 16553.53546937788 ns/iter 1.00
JSON_Parse_Object_Short_Keys 8424.5207468377 ns/iter 8469.150876597507 ns/iter 0.99
JSON_Parse_Object_Scalar_Properties 4260.096594612155 ns/iter 4289.688709309579 ns/iter 0.99
JSON_Parse_Object_Array_Properties 6512.592322642981 ns/iter 6585.896557900909 ns/iter 0.99
JSON_Parse_Object_Object_Properties 6554.549827660786 ns/iter 6455.162936850025 ns/iter 1.02
JSON_Parse_Nested_Containers 38898.7671757842 ns/iter 39264.77685857873 ns/iter 0.99
JSON_From_String_Copy 9.065451203494977 ns/iter 8.849518523227141 ns/iter 1.02
JSON_From_String_Temporary 7.424449824787429 ns/iter 7.19386201653347 ns/iter 1.03
JSON_Number_To_Double 20.599677076095514 ns/iter 20.585277985803888 ns/iter 1.00
JSON_Object_At_Last_Key/8 3.7477940909918117 ns/iter 3.746006070525512 ns/iter 1.00
JSON_Object_At_Last_Key/32 11.894652751451625 ns/iter 11.899293679303355 ns/iter 1.00
JSON_Object_At_Last_Key/128 48.638508248219786 ns/iter 48.61671767191059 ns/iter 1.00
JSON_Object_At_Last_Key/512 359.37043225539907 ns/iter 358.95392747619735 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 75.15497253012414 ns/iter 68.86055092378473 ns/iter 1.09
JSON_Equality_Helm_Chart_Lock 146.3338411551663 ns/iter 148.1148971248486 ns/iter 0.99
JSON_Divisible_By_Decimal 260.3741939732572 ns/iter 261.0318562868822 ns/iter 1.00
JSON_String_Equal/10 5.06440062710573 ns/iter 5.063494797191952 ns/iter 1.00
JSON_String_Equal/100 5.691079777420375 ns/iter 5.682388309849835 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7405143745605306 ns/iter 0.7396685619279019 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.196423865055436 ns/iter 25.220092730740685 ns/iter 1.00
JSON_String_Fast_Hash/10 2.5730139993501 ns/iter 2.567439105430634 ns/iter 1.00
JSON_String_Fast_Hash/100 2.56989835537431 ns/iter 2.5753149957239807 ns/iter 1.00
JSON_String_Key_Hash/10 1.5609622082546553 ns/iter 1.5600298767647969 ns/iter 1.00
JSON_String_Key_Hash/100 12.443248443658065 ns/iter 12.445504358150593 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.428378608212631 ns/iter 3.425117579780078 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.1146766311093774 ns/iter 3.114400276000661 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.440283380988643 ns/iter 3.4240929408482677 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 0.6229616505662942 ns/iter 0.6228641234280281 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.6228262234050576 ns/iter 0.6225406375850083 ns/iter 1.00
Regex_Period_Asterisk 0.6233532815812877 ns/iter 0.6225912664920389 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 0.6254915678485453 ns/iter 0.6231442684631069 ns/iter 1.00
Regex_Period_Plus 0.6251090741115454 ns/iter 0.6230573816879107 ns/iter 1.00
Regex_Period 0.6232680093206484 ns/iter 0.6231706157375062 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 0.6230897266514973 ns/iter 0.6250045255742964 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 0.6231417907358062 ns/iter 0.6245487935216879 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 0.6234703766578579 ns/iter 0.6227153012023741 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.6236915894930258 ns/iter 0.6230046361180375 ns/iter 1.00
Regex_Caret_X_Hyphen 3.7389404245732996 ns/iter 3.7405034302526485 ns/iter 1.00
Regex_Period_Md_Dollar 29.808652963927987 ns/iter 36.728894573818735 ns/iter 0.81
Regex_Caret_Slash_Period_Asterisk 4.052365643506453 ns/iter 4.045938594181698 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.2465643076921484 ns/iter 1.2457875299522798 ns/iter 1.00
Regex_Nested_Backtrack 42.33699541636569 ns/iter 46.0862319216896 ns/iter 0.92

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 (linux/llvm)

Details
Benchmark suite Current: 7e01db3 Previous: 0d35d4e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.439918499060985 ns/iter 2.4600232067055807 ns/iter 0.59
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.435598886467433 ns/iter 2.460747027002404 ns/iter 0.58
Regex_Period_Asterisk 1.437708204623353 ns/iter 2.461423899073986 ns/iter 0.58
Regex_Group_Period_Asterisk_Group 1.4461722949120668 ns/iter 2.4617187330376793 ns/iter 0.59
Regex_Period_Plus 2.1990444795327866 ns/iter 3.865766557685432 ns/iter 0.57
Regex_Period 2.20976300479665 ns/iter 3.8669666300716936 ns/iter 0.57
Regex_Caret_Period_Plus_Dollar 2.198703034225257 ns/iter 3.8667239233079687 ns/iter 0.57
Regex_Caret_Group_Period_Plus_Group_Dollar 2.2230875380969963 ns/iter 3.8677889122039626 ns/iter 0.57
Regex_Caret_Period_Asterisk_Dollar 1.479286112087641 ns/iter 2.4617858887861654 ns/iter 0.60
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.4523283172035601 ns/iter 2.4617002095392144 ns/iter 0.59
Regex_Caret_X_Hyphen 4.006137409736597 ns/iter 6.70661401548671 ns/iter 0.60
Regex_Period_Md_Dollar 19.19385249591317 ns/iter 26.195736856598987 ns/iter 0.73
Regex_Caret_Slash_Period_Asterisk 3.7066653013002573 ns/iter 7.383900533881907 ns/iter 0.50
Regex_Caret_Period_Range_Dollar 2.5431936961878088 ns/iter 3.8680802085230592 ns/iter 0.66
Regex_Nested_Backtrack 29.848574525682533 ns/iter 38.85667895300959 ns/iter 0.77
JSON_Array_Of_Objects_Unique 370.8423936209834 ns/iter 476.7943725630207 ns/iter 0.78
JSON_Parse_1 3721.4541330592156 ns/iter 4299.650428285285 ns/iter 0.87
JSON_Parse_Real 4083.8529625872216 ns/iter 4992.015917616314 ns/iter 0.82
JSON_Parse_Decimal 6638.235766047893 ns/iter 7382.911627906749 ns/iter 0.90
JSON_Parse_Schema_ISO_Language 2795697.378485963 ns/iter 3303885.1619047755 ns/iter 0.85
JSON_Parse_Integer 2824.456761295457 ns/iter 3739.848348733625 ns/iter 0.76
JSON_Parse_String_NonSSO_Plain 2314.676048374635 ns/iter 3163.0435663809176 ns/iter 0.73
JSON_Parse_String_SSO_Plain 2144.3572202764913 ns/iter 2752.4800262982426 ns/iter 0.78
JSON_Parse_String_Escape_Heavy 11515.731807877908 ns/iter 11976.932014622 ns/iter 0.96
JSON_Parse_Object_Short_Keys 6437.1664680174945 ns/iter 7674.057434504453 ns/iter 0.84
JSON_Parse_Object_Scalar_Properties 3299.720613681525 ns/iter 3908.167522806986 ns/iter 0.84
JSON_Parse_Object_Array_Properties 4311.785177683785 ns/iter 5352.094698758475 ns/iter 0.81
JSON_Parse_Object_Object_Properties 4229.010426452915 ns/iter 5329.03199610699 ns/iter 0.79
JSON_Parse_Nested_Containers 29313.075823903433 ns/iter 34513.70184262778 ns/iter 0.85
JSON_From_String_Copy 7.792318385700115 ns/iter 11.586878029208862 ns/iter 0.67
JSON_From_String_Temporary 7.03675845556152 ns/iter 10.17476593754044 ns/iter 0.69
JSON_Number_To_Double 20.18251972297186 ns/iter 22.90754680629464 ns/iter 0.88
JSON_Object_At_Last_Key/8 3.6849082974084175 ns/iter 4.129916983438461 ns/iter 0.89
JSON_Object_At_Last_Key/32 11.804341565328903 ns/iter 13.0568546105981 ns/iter 0.90
JSON_Object_At_Last_Key/128 44.517424550985545 ns/iter 55.96607777545219 ns/iter 0.80
JSON_Object_At_Last_Key/512 184.6267166772194 ns/iter 350.62228837962647 ns/iter 0.53
JSON_Fast_Hash_Helm_Chart_Lock 47.46839493289743 ns/iter 66.32213754046347 ns/iter 0.72
JSON_Equality_Helm_Chart_Lock 119.75119059664733 ns/iter 154.23384429969576 ns/iter 0.78
JSON_Divisible_By_Decimal 205.25644863289517 ns/iter 251.56939338401168 ns/iter 0.82
JSON_String_Equal/10 4.552646140681105 ns/iter 5.629024127567473 ns/iter 0.81
JSON_String_Equal/100 5.693701552745472 ns/iter 6.349792238458564 ns/iter 0.90
JSON_String_Equal_Small_By_Perfect_Hash/10 0.5875519657776682 ns/iter 1.0547335016826584 ns/iter 0.56
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 8.623187070990229 ns/iter 12.337090484830036 ns/iter 0.70
JSON_String_Fast_Hash/10 1.7136410816526606 ns/iter 2.1142827218994307 ns/iter 0.81
JSON_String_Fast_Hash/100 1.7045188102169722 ns/iter 2.1171783395163364 ns/iter 0.81
JSON_String_Key_Hash/10 1.7048124117473655 ns/iter 2.4611207888293105 ns/iter 0.69
JSON_String_Key_Hash/100 6.0469609982383625 ns/iter 8.084185986703673 ns/iter 0.75
JSON_Object_Defines_Miss_Same_Length 4.03514833690923 ns/iter 4.2208054623614055 ns/iter 0.96
JSON_Object_Defines_Miss_Too_Small 4.030110717110265 ns/iter 3.2362982197006818 ns/iter 1.25
JSON_Object_Defines_Miss_Too_Large 3.408980417584857 ns/iter 2.931306126647819 ns/iter 1.16
Pointer_Object_Traverse 20.885397007784356 ns/iter 31.0056130929717 ns/iter 0.67
Pointer_Object_Try_Traverse 24.05481728554292 ns/iter 33.115109737684605 ns/iter 0.73
Pointer_Push_Back_Pointer_To_Weak_Pointer 96.91865412612974 ns/iter 181.81371816157062 ns/iter 0.53
Pointer_Walker_Schema_ISO_Language 1800719.1772152844 ns/iter 1527874.9355555496 ns/iter 1.18
Pointer_Maybe_Tracked_Deeply_Nested/0 1016816.3921569051 ns/iter 1266404.6256881352 ns/iter 0.80
Pointer_Maybe_Tracked_Deeply_Nested/1 1446814.4120171755 ns/iter 1628963.1897435787 ns/iter 0.89
Pointer_Position_Tracker_Get_Deeply_Nested 587.1716813944604 ns/iter 753.3822395465834 ns/iter 0.78
JSONPath_Descendant_Filter_Nested 1086.9889299469962 ns/iter 1562.103306463034 ns/iter 0.70
URITemplateRouter_Create 16535.542737542146 ns/iter 21719.170549189872 ns/iter 0.76
URITemplateRouter_Match 149.69152221215117 ns/iter 177.52052207537147 ns/iter 0.84
URITemplateRouter_Match_BasePath 166.1938738608022 ns/iter 213.1208218630177 ns/iter 0.78
URITemplateRouterView_Restore 2951.4747673730085 ns/iter 9842.668141905226 ns/iter 0.30
URITemplateRouterView_Match 120.80831913733456 ns/iter 143.68679960531867 ns/iter 0.84
URITemplateRouterView_Match_BasePath 133.80610013063844 ns/iter 167.15329613754247 ns/iter 0.80
URITemplateRouterView_Arguments 386.0253167516426 ns/iter 450.5184435773739 ns/iter 0.86
JSONL_Parse_Large 7566257.19354852 ns/iter 8593410.597560562 ns/iter 0.88
JSONL_Parse_Large_GZIP 8952554.44736838 ns/iter 10319567.63235254 ns/iter 0.87
JSONLD_Catalog_Annotation_List_Populate 622863.3327495733 ns/iter 584659.4933222262 ns/iter 1.07
JSONLD_Catalog_Materialize 3070985.2783020255 ns/iter 3642558.8367348737 ns/iter 0.84
HTML_Build_Table_100000 50663744.909095176 ns/iter 67412079.19999966 ns/iter 0.75
HTML_Render_Table_100000 2702779.517241244 ns/iter 1959677.134831339 ns/iter 1.38
GZIP_Compress_ISO_Language_Set_3_Locations 25017082.892856836 ns/iter 35806777.54999897 ns/iter 0.70
GZIP_Decompress_ISO_Language_Set_3_Locations 3334142.6757992664 ns/iter 4275940.74390266 ns/iter 0.78
GZIP_Compress_ISO_Language_Set_3_Schema 1687180.8052884447 ns/iter 2138503.6707317727 ns/iter 0.79
GZIP_Decompress_ISO_Language_Set_3_Schema 315283.50310559565 ns/iter 277499.749010313 ns/iter 1.14
JOSE_VerifySignature_RS256 43402.46553771161 ns/iter 64186.816960611475 ns/iter 0.68
JOSE_VerifySignature_ES512 1858022.6385869398 ns/iter 2679523.0766281667 ns/iter 0.69

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: 7e01db3 Previous: 0b5334a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.1587289999997665 ns/iter 5.128730000000132 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.968181786823134 ns/iter 5.04622100000006 ns/iter 0.98
Regex_Period_Asterisk 5.237361000000078 ns/iter 5.027158000000327 ns/iter 1.04
Regex_Group_Period_Asterisk_Group 5.055328999999915 ns/iter 5.042336000000205 ns/iter 1.00
Regex_Period_Plus 4.667814743003266 ns/iter 4.798037287495326 ns/iter 0.97
Regex_Period 4.6950074215077855 ns/iter 4.828684554649143 ns/iter 0.97
Regex_Caret_Period_Plus_Dollar 4.611212957428095 ns/iter 4.723466528400687 ns/iter 0.98
Regex_Caret_Group_Period_Plus_Group_Dollar 4.6059806583336895 ns/iter 4.775764296374307 ns/iter 0.96
Regex_Caret_Period_Asterisk_Dollar 4.970153999999525 ns/iter 5.054579464285273 ns/iter 0.98
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.961226000000352 ns/iter 5.0195044642857205 ns/iter 0.99
Regex_Caret_X_Hyphen 8.065495535714007 ns/iter 8.271815848214079 ns/iter 0.98
Regex_Period_Md_Dollar 57.2321785714282 ns/iter 47.36278227212439 ns/iter 1.21
Regex_Caret_Slash_Period_Asterisk 7.458138392857043 ns/iter 7.929399553571668 ns/iter 0.94
Regex_Caret_Period_Range_Dollar 5.393974107142644 ns/iter 5.644181250000355 ns/iter 0.96
Regex_Nested_Backtrack 80.8557553189398 ns/iter 57.91542857142673 ns/iter 1.40
JSON_Array_Of_Objects_Unique 709.5233928571381 ns/iter 617.7968750000064 ns/iter 1.15
JSON_Parse_1 9389.023263288967 ns/iter 8871.794768773123 ns/iter 1.06
JSON_Parse_Real 16469.89220910005 ns/iter 16118.528249072962 ns/iter 1.02
JSON_Parse_Decimal 11218.65892857191 ns/iter 12266.97500000018 ns/iter 0.91
JSON_Parse_Schema_ISO_Language 8212932.222222158 ns/iter 7844148.888888943 ns/iter 1.05
JSON_Parse_Integer 6028.605357143034 ns/iter 6361.823660714678 ns/iter 0.95
JSON_Parse_String_NonSSO_Plain 8168.347462734858 ns/iter 8587.029017857541 ns/iter 0.95
JSON_Parse_String_SSO_Plain 3683.206994273019 ns/iter 4030.5487847344693 ns/iter 0.91
JSON_Parse_String_Escape_Heavy 22001.94062500138 ns/iter 21700.56874999915 ns/iter 1.01
JSON_Parse_Object_Short_Keys 12771.774679577296 ns/iter 13212.762666238074 ns/iter 0.97
JSON_Parse_Object_Scalar_Properties 6596.026785714518 ns/iter 6867.163392857074 ns/iter 0.96
JSON_Parse_Object_Array_Properties 11660.948214285887 ns/iter 11665.064285714217 ns/iter 1.00
JSON_Parse_Object_Object_Properties 11634.251785713852 ns/iter 11720.01250000067 ns/iter 0.99
JSON_Parse_Nested_Containers 82641.7838489376 ns/iter 79262.20982142747 ns/iter 1.04
JSON_From_String_Copy 62.81939285714141 ns/iter 64.40855357143148 ns/iter 0.98
JSON_From_String_Temporary 81.07476562499677 ns/iter 57.96050892857047 ns/iter 1.40
JSON_Number_To_Double 132.88069642856368 ns/iter 124.96008928572168 ns/iter 1.06
JSON_Object_At_Last_Key/8 7.436555323943681 ns/iter 7.541197544642664 ns/iter 0.99
JSON_Object_At_Last_Key/32 25.138249999999726 ns/iter 22.958155993770728 ns/iter 1.09
JSON_Object_At_Last_Key/128 94.33346900296783 ns/iter 89.19287548246184 ns/iter 1.06
JSON_Object_At_Last_Key/512 431.81914336460324 ns/iter 426.2091692737537 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 122.83799999999621 ns/iter 107.09914285713344 ns/iter 1.15
JSON_Equality_Helm_Chart_Lock 209.52328305700368 ns/iter 208.57149738518672 ns/iter 1.00
JSON_Divisible_By_Decimal 397.18904030407566 ns/iter 302.55295352389 ns/iter 1.31
JSON_String_Equal/10 10.058581250000032 ns/iter 10.707553571428972 ns/iter 0.94
JSON_String_Equal/100 11.502400000000357 ns/iter 12.334778571427714 ns/iter 0.93
JSON_String_Equal_Small_By_Perfect_Hash/10 2.131215000000175 ns/iter 2.540988479873843 ns/iter 0.84
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 16.939005466926737 ns/iter 20.62810937499953 ns/iter 0.82
JSON_String_Fast_Hash/10 6.534174999999769 ns/iter 6.8729868177237545 ns/iter 0.95
JSON_String_Fast_Hash/100 6.510950892857486 ns/iter 6.620655357143132 ns/iter 0.98
JSON_String_Key_Hash/10 5.014689285714168 ns/iter 5.402488392856444 ns/iter 0.93
JSON_String_Key_Hash/100 10.950603124999958 ns/iter 11.970724999999405 ns/iter 0.91
JSON_Object_Defines_Miss_Same_Length 4.6664607142855425 ns/iter 4.785697778539609 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Small 4.612517421009909 ns/iter 5.057752411843388 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 4.659636840758122 ns/iter 5.156317880615203 ns/iter 0.90
Pointer_Object_Traverse 65.32636607142857 ns/iter 84.54607142857537 ns/iter 0.77
Pointer_Object_Try_Traverse 68.50541294642909 ns/iter 75.56267857143187 ns/iter 0.91
Pointer_Push_Back_Pointer_To_Weak_Pointer 155.08946428571338 ns/iter 178.1091391590897 ns/iter 0.87
Pointer_Walker_Schema_ISO_Language 13827471.428572023 ns/iter 11607507.14285541 ns/iter 1.19
Pointer_Maybe_Tracked_Deeply_Nested/0 2393753.7878786293 ns/iter 2525832.1969697694 ns/iter 0.95
Pointer_Maybe_Tracked_Deeply_Nested/1 3708257.2192511507 ns/iter 3880831.5508020236 ns/iter 0.96
Pointer_Position_Tracker_Get_Deeply_Nested 580.5609374999981 ns/iter 594.4316964286196 ns/iter 0.98
JSONPath_Descendant_Filter_Nested 2419.4825675416873 ns/iter 2897.645714285854 ns/iter 0.83
URITemplateRouter_Create 38201.03794643132 ns/iter 56782.247371595295 ns/iter 0.67
URITemplateRouter_Match 226.65362425742097 ns/iter 311.7375892857004 ns/iter 0.73
URITemplateRouter_Match_BasePath 251.49549999998808 ns/iter 272.0525503547956 ns/iter 0.92
URITemplateRouterView_Restore 26603.53659924801 ns/iter 34281.0400707092 ns/iter 0.78
URITemplateRouterView_Match 174.34274381759448 ns/iter 189.08187402518098 ns/iter 0.92
URITemplateRouterView_Match_BasePath 196.68531934440676 ns/iter 213.90172929012556 ns/iter 0.92
URITemplateRouterView_Arguments 598.9430357143277 ns/iter 561.0408928571278 ns/iter 1.07
JSONL_Parse_Large 33164435.000000484 ns/iter 34402257.14285546 ns/iter 0.96
JSONL_Parse_Large_GZIP 33583265.00000146 ns/iter 33857995.23809532 ns/iter 0.99
JSONLD_Catalog_Annotation_List_Populate 3537807.9812208135 ns/iter 3301530.516431795 ns/iter 1.07
JSONLD_Catalog_Materialize 10906982.666666256 ns/iter 9448302.222222082 ns/iter 1.15
HTML_Build_Table_100000 93281328.5714279 ns/iter 97291711.11110999 ns/iter 0.96
HTML_Render_Table_100000 8148762.666666395 ns/iter 7986226.666666122 ns/iter 1.02
GZIP_Compress_ISO_Language_Set_3_Locations 38036747.36842236 ns/iter 36430010.5263139 ns/iter 1.04
GZIP_Decompress_ISO_Language_Set_3_Locations 10881109.333333824 ns/iter 10042354.687499255 ns/iter 1.08
GZIP_Compress_ISO_Language_Set_3_Schema 2322691.6387959793 ns/iter 2089130.4347828012 ns/iter 1.11
GZIP_Decompress_ISO_Language_Set_3_Schema 636446.9866071104 ns/iter 653015.6250000069 ns/iter 0.97
JOSE_VerifySignature_RS256 23841.999999999884 ns/iter 21454.36422726609 ns/iter 1.11
JOSE_VerifySignature_ES512 1524929.718875482 ns/iter 1379401.2048192765 ns/iter 1.11

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

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

@cubic-dev-ai cubic-dev-ai 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.

1 issue found across 3 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/lang/process/usage.cc">

<violation number="1" location="src/lang/process/usage.cc:90">
P3: The documentation comment is cut off mid-sentence. "...under a name the other platforms already mean something else by" trails off without naming what the other platforms mean the quantity by, so the justification reads as an unfinished thought.</violation>
</file>

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread src/lang/process/usage.cc Outdated
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti
jviotti merged commit 0d35d4e into main Aug 25, 2026
13 checks passed
@jviotti
jviotti deleted the process-improvements branch August 25, 2026 16:33

@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: 7e01db3 Previous: 0b5334a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9007151458594076 ns/iter 2.082621872152316 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1658905362718937 ns/iter 1.8819396904808843 ns/iter 1.15
Regex_Period_Asterisk 2.1808157554901193 ns/iter 2.3806661857867515 ns/iter 0.92
Regex_Group_Period_Asterisk_Group 1.883325627458322 ns/iter 2.4507821626120694 ns/iter 0.77
Regex_Period_Plus 2.2377686395387943 ns/iter 2.0822895980376965 ns/iter 1.07
Regex_Period 2.2774398344714126 ns/iter 2.2234890233596136 ns/iter 1.02
Regex_Caret_Period_Plus_Dollar 2.252639218250876 ns/iter 2.032853489399452 ns/iter 1.11
Regex_Caret_Group_Period_Plus_Group_Dollar 2.2659566115825003 ns/iter 2.041554824536046 ns/iter 1.11
Regex_Caret_Period_Asterisk_Dollar 1.9029636175512388 ns/iter 1.77552225717419 ns/iter 1.07
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.8865272166562166 ns/iter 1.6881146614047644 ns/iter 1.12
Regex_Caret_X_Hyphen 6.76236349889235 ns/iter 6.240317872281958 ns/iter 1.08
Regex_Period_Md_Dollar 20.403498758285966 ns/iter 18.035018752613606 ns/iter 1.13
Regex_Caret_Slash_Period_Asterisk 5.1425427005116235 ns/iter 4.415160424458553 ns/iter 1.16
Regex_Caret_Period_Range_Dollar 2.2969606784810783 ns/iter 2.0246114834275764 ns/iter 1.13
Regex_Nested_Backtrack 37.75492467222374 ns/iter 27.720931306553048 ns/iter 1.36
JSON_Array_Of_Objects_Unique 402.02721136669976 ns/iter 367.40801923731715 ns/iter 1.09
JSON_Parse_1 3500.3054836195533 ns/iter 3788.4470658018654 ns/iter 0.92
JSON_Parse_Real 5681.265159097796 ns/iter 5925.455231922077 ns/iter 0.96
JSON_Parse_Decimal 6198.675748665277 ns/iter 5918.665418634819 ns/iter 1.05
JSON_Parse_Schema_ISO_Language 2515932.885714278 ns/iter 2863872.1919190874 ns/iter 0.88
JSON_Parse_Integer 3574.528259779483 ns/iter 3982.968836460243 ns/iter 0.90
JSON_Parse_String_NonSSO_Plain 3363.9526058502506 ns/iter 4771.04737765835 ns/iter 0.71
JSON_Parse_String_SSO_Plain 1946.45341552153 ns/iter 1854.8398047185904 ns/iter 1.05
JSON_Parse_String_Escape_Heavy 18527.598694813292 ns/iter 19129.000210129045 ns/iter 0.97
JSON_Parse_Object_Short_Keys 6562.825777169433 ns/iter 6548.673161037511 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 4053.382483051332 ns/iter 3324.1314612056867 ns/iter 1.22
JSON_Parse_Object_Array_Properties 6164.738505299216 ns/iter 3957.428344805786 ns/iter 1.56
JSON_Parse_Object_Object_Properties 6162.153888863207 ns/iter 4387.808694472385 ns/iter 1.40
JSON_Parse_Nested_Containers 33730.06981865573 ns/iter 30107.76775271725 ns/iter 1.12
JSON_From_String_Copy 14.822461187605287 ns/iter 13.040851710807882 ns/iter 1.14
JSON_From_String_Temporary 9.014746245117207 ns/iter 7.881166580360633 ns/iter 1.14
JSON_Number_To_Double 44.207837873359736 ns/iter 42.46018688221994 ns/iter 1.04
JSON_Object_At_Last_Key/8 4.820286826575874 ns/iter 5.406448208953777 ns/iter 0.89
JSON_Object_At_Last_Key/32 15.062434006019148 ns/iter 14.33161246524505 ns/iter 1.05
JSON_Object_At_Last_Key/128 61.05872443324516 ns/iter 58.106357333791834 ns/iter 1.05
JSON_Object_At_Last_Key/512 209.51512261661034 ns/iter 203.78537596816932 ns/iter 1.03
JSON_Fast_Hash_Helm_Chart_Lock 66.03324702411865 ns/iter 59.109618809015195 ns/iter 1.12
JSON_Equality_Helm_Chart_Lock 186.4316242933842 ns/iter 182.49570495215514 ns/iter 1.02
JSON_Divisible_By_Decimal 210.30282594289756 ns/iter 195.69072488500635 ns/iter 1.07
JSON_String_Equal/10 8.447260130139005 ns/iter 7.507704931155753 ns/iter 1.13
JSON_String_Equal/100 7.644319496764994 ns/iter 6.756642805431401 ns/iter 1.13
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3733779324468518 ns/iter 0.3369912743839821 ns/iter 1.11
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.622231791632937 ns/iter 3.1879166078517738 ns/iter 1.14
JSON_String_Fast_Hash/10 2.6210280905812073 ns/iter 2.363806278261084 ns/iter 1.11
JSON_String_Fast_Hash/100 2.2650927962567953 ns/iter 2.0207626007638027 ns/iter 1.12
JSON_String_Key_Hash/10 1.8793098971208662 ns/iter 1.6615958023298183 ns/iter 1.13
JSON_String_Key_Hash/100 2.786759914351674 ns/iter 2.0891085893346 ns/iter 1.33
JSON_Object_Defines_Miss_Same_Length 2.9920172023040017 ns/iter 2.641992998154698 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Small 3.01873660820165 ns/iter 2.6722253026574054 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 2.9867296149638607 ns/iter 2.649025010676675 ns/iter 1.13
Pointer_Object_Traverse 25.73162651414175 ns/iter 19.92463438945026 ns/iter 1.29
Pointer_Object_Try_Traverse 39.378802285317 ns/iter 32.13722799884095 ns/iter 1.23
Pointer_Push_Back_Pointer_To_Weak_Pointer 156.86895840250747 ns/iter 136.86103062630357 ns/iter 1.15
Pointer_Walker_Schema_ISO_Language 1466122.768736537 ns/iter 1336842.2690058348 ns/iter 1.10
Pointer_Maybe_Tracked_Deeply_Nested/0 960338.8971961646 ns/iter 831525.4745763745 ns/iter 1.15
Pointer_Maybe_Tracked_Deeply_Nested/1 1239918.468858083 ns/iter 1018249.0472102206 ns/iter 1.22
Pointer_Position_Tracker_Get_Deeply_Nested 389.44318439735537 ns/iter 335.8723945959029 ns/iter 1.16
JSONPath_Descendant_Filter_Nested 1334.1770454281755 ns/iter 1265.5004813980283 ns/iter 1.05
URITemplateRouter_Create 20201.409546649862 ns/iter 17569.960179816957 ns/iter 1.15
URITemplateRouter_Match 187.9158528333414 ns/iter 165.73460695939772 ns/iter 1.13
URITemplateRouter_Match_BasePath 224.6380424175592 ns/iter 194.69733080443456 ns/iter 1.15
URITemplateRouterView_Restore 11785.23561731369 ns/iter 9925.884186726607 ns/iter 1.19
URITemplateRouterView_Match 173.79176454012503 ns/iter 140.2953836131311 ns/iter 1.24
URITemplateRouterView_Match_BasePath 204.58854618621373 ns/iter 156.7268145658677 ns/iter 1.31
URITemplateRouterView_Arguments 612.1080228277599 ns/iter 536.8474992069787 ns/iter 1.14
JSONL_Parse_Large 7134395.836733718 ns/iter 6186149.707965157 ns/iter 1.15
JSONL_Parse_Large_GZIP 8314805.720930888 ns/iter 8151941.964285924 ns/iter 1.02
JSONLD_Catalog_Annotation_List_Populate 559770.0585906449 ns/iter 489237.91937873984 ns/iter 1.14
JSONLD_Catalog_Materialize 2957972.727272756 ns/iter 2143858.0188088883 ns/iter 1.38
HTML_Build_Table_100000 43025583.31249884 ns/iter 36531122.78947758 ns/iter 1.18
HTML_Render_Table_100000 1985767.7394959913 ns/iter 1507340.2489362822 ns/iter 1.32
GZIP_Compress_ISO_Language_Set_3_Locations 30502701.08695693 ns/iter 25761027.777775783 ns/iter 1.18
GZIP_Decompress_ISO_Language_Set_3_Locations 4186910.9281438673 ns/iter 3353824.7607657905 ns/iter 1.25
GZIP_Compress_ISO_Language_Set_3_Schema 1727210.687960852 ns/iter 1618782.1015453879 ns/iter 1.07
GZIP_Decompress_ISO_Language_Set_3_Schema 358701.45393857325 ns/iter 310106.2266365943 ns/iter 1.16
JOSE_VerifySignature_RS256 28805.964008051014 ns/iter 23639.922348668853 ns/iter 1.22
JOSE_VerifySignature_ES512 1094555.8800622972 ns/iter 1067938.0580357914 ns/iter 1.02

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