Skip to content

Commit

Permalink
Revise CMake utilities, folders, and tests (#1503)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Jan 28, 2025
1 parent ddad44e commit 1257bcd
Show file tree
Hide file tree
Showing 23 changed files with 21 additions and 43 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ lint: .always
test: .always
$(CMAKE) -E env UBSAN_OPTIONS=print_stacktrace=1 \
$(CTEST) --test-dir ./build --build-config $(PRESET) \
--output-on-failure --progress --parallel
--output-on-failure --parallel

benchmark: .always
$(CMAKE) --build ./build --config $(PRESET) --target benchmark_all
Expand Down
2 changes: 1 addition & 1 deletion benchmark/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ endif()

if(BENCHMARK_SOURCES)
sourcemeta_googlebenchmark(NAMESPACE sourcemeta PROJECT core
FOLDER "Core" SOURCES ${BENCHMARK_SOURCES})
SOURCES ${BENCHMARK_SOURCES})

target_compile_definitions(sourcemeta_core_benchmark
PRIVATE CURRENT_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}")
Expand Down
9 changes: 4 additions & 5 deletions cmake/common/targets/executable.cmake
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
function(sourcemeta_executable)
cmake_parse_arguments(SOURCEMETA_EXECUTABLE ""
"NAMESPACE;PROJECT;NAME;FOLDER;VARIANT;OUTPUT" "SOURCES" ${ARGN})
"NAMESPACE;PROJECT;NAME;VARIANT;OUTPUT" "SOURCES" ${ARGN})

if(NOT SOURCEMETA_EXECUTABLE_PROJECT)
message(FATAL_ERROR "You must pass the project name using the PROJECT option")
endif()
if(NOT SOURCEMETA_EXECUTABLE_NAME)
message(FATAL_ERROR "You must pass the executable name using the NAME option")
endif()
if(NOT SOURCEMETA_EXECUTABLE_FOLDER)
message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
endif()
if(NOT SOURCEMETA_EXECUTABLE_SOURCES)
message(FATAL_ERROR "You must pass the sources list using the SOURCES option")
endif()

if(SOURCEMETA_EXECUTABLE_NAMESPACE)
set(TARGET_NAME "${SOURCEMETA_EXECUTABLE_NAMESPACE}_${SOURCEMETA_EXECUTABLE_PROJECT}_${SOURCEMETA_EXECUTABLE_NAME}")
set(FOLDER_NAME "${SOURCEMETA_EXECUTABLE_NAMESPACE}/${SOURCEMETA_EXECUTABLE_PROJECT}/${SOURCEMETA_EXECUTABLE_NAME}")
else()
set(TARGET_NAME "${SOURCEMETA_EXECUTABLE_PROJECT}_${SOURCEMETA_EXECUTABLE_NAME}")
set(FOLDER_NAME "${SOURCEMETA_EXECUTABLE_PROJECT}/${SOURCEMETA_EXECUTABLE_NAME}")
endif()

if(SOURCEMETA_EXECUTABLE_VARIANT)
Expand All @@ -31,5 +30,5 @@ function(sourcemeta_executable)

add_executable("${TARGET_NAME}" ${SOURCEMETA_EXECUTABLE_SOURCES})
sourcemeta_add_default_options(PRIVATE ${TARGET_NAME})
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${SOURCEMETA_EXECUTABLE_FOLDER}")
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${FOLDER_NAME}")
endfunction()
9 changes: 4 additions & 5 deletions cmake/common/targets/googlebenchmark.cmake
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
function(sourcemeta_googlebenchmark)
cmake_parse_arguments(SOURCEMETA_GOOGLEBENCHMARK ""
"NAMESPACE;PROJECT;FOLDER" "SOURCES" ${ARGN})
"NAMESPACE;PROJECT" "SOURCES" ${ARGN})

if(NOT SOURCEMETA_GOOGLEBENCHMARK_PROJECT)
message(FATAL_ERROR "You must pass the project name using the PROJECT option")
endif()
if(NOT SOURCEMETA_GOOGLEBENCHMARK_FOLDER)
message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
endif()
if(NOT SOURCEMETA_GOOGLEBENCHMARK_SOURCES)
message(FATAL_ERROR "You must pass the sources list using the SOURCES option")
endif()

if(SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE)
set(TARGET_NAME "${SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE}_${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}_benchmark")
set(FOLDER_NAME "${SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE}/${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}")
else()
set(TARGET_NAME "${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}_benchmark")
set(FOLDER_NAME "${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}")
endif()

add_executable("${TARGET_NAME}" ${SOURCEMETA_GOOGLEBENCHMARK_SOURCES})
sourcemeta_add_default_options(PRIVATE ${TARGET_NAME})
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${SOURCEMETA_GOOGLEBENCHMARK_FOLDER}")
set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${FOLDER_NAME}")
target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark)
target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark_main)
endfunction()
3 changes: 1 addition & 2 deletions cmake/common/targets/googletest.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
function(sourcemeta_googletest)
cmake_parse_arguments(SOURCEMETA_GOOGLETEST ""
"NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "SOURCES" ${ARGN})
"NAMESPACE;PROJECT;NAME;VARIANT" "SOURCES" ${ARGN})

if(SOURCEMETA_GOOGLETEST_VARIANT)
set(TARGET_VARIANT "${SOURCEMETA_GOOGLETEST_VARIANT}_unit")
Expand All @@ -12,7 +12,6 @@ function(sourcemeta_googletest)
NAMESPACE "${SOURCEMETA_GOOGLETEST_NAMESPACE}"
PROJECT "${SOURCEMETA_GOOGLETEST_PROJECT}"
NAME "${SOURCEMETA_GOOGLETEST_NAME}"
FOLDER "${SOURCEMETA_GOOGLETEST_FOLDER}"
VARIANT "${TARGET_VARIANT}"
SOURCES "${SOURCEMETA_GOOGLETEST_SOURCES}"
OUTPUT TARGET_NAME)
Expand Down
11 changes: 5 additions & 6 deletions cmake/common/targets/library.cmake
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
function(sourcemeta_library)
cmake_parse_arguments(SOURCEMETA_LIBRARY ""
"NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "PRIVATE_HEADERS;SOURCES" ${ARGN})
"NAMESPACE;PROJECT;NAME;VARIANT" "PRIVATE_HEADERS;SOURCES" ${ARGN})

if(NOT SOURCEMETA_LIBRARY_PROJECT)
message(FATAL_ERROR "You must pass the project name using the PROJECT option")
endif()
if(NOT SOURCEMETA_LIBRARY_NAME)
message(FATAL_ERROR "You must pass the library name using the NAME option")
endif()
if(NOT SOURCEMETA_LIBRARY_FOLDER)
message(FATAL_ERROR "You must pass the folder name using the FOLDER option")
endif()

if(SOURCEMETA_LIBRARY_NAMESPACE)
set(INCLUDE_PREFIX "include/${SOURCEMETA_LIBRARY_NAMESPACE}/${SOURCEMETA_LIBRARY_PROJECT}")
Expand Down Expand Up @@ -42,9 +39,11 @@ function(sourcemeta_library)
if(SOURCEMETA_LIBRARY_NAMESPACE)
set(TARGET_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}_${SOURCEMETA_LIBRARY_PROJECT}_${SOURCEMETA_LIBRARY_NAME}")
set(ALIAS_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}::${SOURCEMETA_LIBRARY_PROJECT}::${SOURCEMETA_LIBRARY_NAME}")
set(FOLDER_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}/${SOURCEMETA_LIBRARY_PROJECT}/${SOURCEMETA_LIBRARY_NAME}")
else()
set(TARGET_NAME "${SOURCEMETA_LIBRARY_PROJECT}_${SOURCEMETA_LIBRARY_NAME}")
set(ALIAS_NAME "${SOURCEMETA_LIBRARY_PROJECT}::${SOURCEMETA_LIBRARY_NAME}")
set(FOLDER_NAME "${SOURCEMETA_LIBRARY_PROJECT}/${SOURCEMETA_LIBRARY_NAME}")
endif()

if(SOURCEMETA_LIBRARY_VARIANT)
Expand Down Expand Up @@ -92,15 +91,15 @@ function(sourcemeta_library)
PUBLIC_HEADER "${PUBLIC_HEADER}"
PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}"
EXPORT_NAME "${export_name}"
FOLDER "${SOURCEMETA_LIBRARY_FOLDER}")
FOLDER "${FOLDER_NAME}")
else()
set_target_properties(${TARGET_NAME}
PROPERTIES
OUTPUT_NAME ${TARGET_NAME}
PUBLIC_HEADER "${PUBLIC_HEADER}"
PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}"
EXPORT_NAME "${export_name}"
FOLDER "${SOURCEMETA_LIBRARY_FOLDER}")
FOLDER "${FOLDER_NAME}")
endif()

if(SOURCEMETA_LIBRARY_SOURCES)
Expand Down
1 change: 0 additions & 1 deletion src/core/json/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME json
FOLDER "Core/JSON"
PRIVATE_HEADERS array.h error.h object.h value.h hash.h
SOURCES grammar.h parser.h stringify.h json.cc json_value.cc)

Expand Down
1 change: 0 additions & 1 deletion src/core/jsonl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonl
FOLDER "Core/JSONL"
PRIVATE_HEADERS iterator.h
SOURCES jsonl.cc iterator.cc grammar.h)

Expand Down
1 change: 0 additions & 1 deletion src/core/jsonpointer/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonpointer
FOLDER "Core/JSON Pointer"
PRIVATE_HEADERS pointer.h position.h error.h token.h
walker.h subpointer_walker.h proxy.h
SOURCES jsonpointer.cc stringify.h parser.h grammar.h position.cc)
Expand Down
1 change: 0 additions & 1 deletion src/core/jsonschema/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ set(OFFICIAL_RESOLVER_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/official_resolver.cc")
include(./official_resolver.cmake)

sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME jsonschema
FOLDER "Core/JSON Schema"
PRIVATE_HEADERS bundle.h resolver.h
walker.h frame.h error.h unevaluated.h
keywords.h transform.h
Expand Down
3 changes: 1 addition & 2 deletions src/core/regex/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME regex
FOLDER "Core/Regex")
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME regex)

if(SOURCEMETA_CORE_INSTALL)
sourcemeta_library_install(NAMESPACE sourcemeta PROJECT core NAME regex)
Expand Down
1 change: 0 additions & 1 deletion src/core/uri/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME uri
FOLDER "Core/URI"
PRIVATE_HEADERS error.h
SOURCES uri.cc escaping.cc)

Expand Down
1 change: 0 additions & 1 deletion src/core/yaml/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME yaml
FOLDER "Core/YAML"
PRIVATE_HEADERS error.h
SOURCES yaml.cc)

Expand Down
1 change: 0 additions & 1 deletion src/extension/alterschema/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME alterschema
FOLDER "Core/AlterSchema"
SOURCES alterschema.cc
# Antipattern
antipattern/const_with_type.h
Expand Down
1 change: 0 additions & 1 deletion test/alterschema/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME alterschema
FOLDER "Core/AlterSchema"
SOURCES
alterschema_lint_2020_12_test.cc
alterschema_lint_2019_09_test.cc
Expand Down
2 changes: 0 additions & 2 deletions test/json/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME json
FOLDER "Core/JSON"
SOURCES
json_array_test.cc
json_boolean_test.cc
Expand Down Expand Up @@ -27,7 +26,6 @@ target_compile_definitions(sourcemeta_core_json_unit
# JSON Test Suite
# See https://github.com/nst/JSONTestSuite
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsontestsuite
FOLDER "Core/JSON"
SOURCES jsontestsuite.cc)
target_compile_definitions(sourcemeta_core_jsontestsuite_unit
PRIVATE JSONTESTSUITE_PATH="${PROJECT_SOURCE_DIR}/vendor/jsontestsuite")
Expand Down
1 change: 0 additions & 1 deletion test/jsonl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonl
FOLDER "Core/JSONL"
SOURCES
jsonl_parse_test.cc
jsonl_parse_error_test.cc)
Expand Down
1 change: 0 additions & 1 deletion test/jsonpointer/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonpointer
FOLDER "Core/JSON Pointer"
SOURCES
jsonpointer_empty_pointer_test.cc
jsonpointer_get_test.cc
Expand Down
2 changes: 0 additions & 2 deletions test/jsonschema/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonschema
FOLDER "Core/JSON Schema"
SOURCES
jsonschema_test_utils.h
jsonschema_identify_2020_12_test.cc
Expand Down Expand Up @@ -102,7 +101,6 @@ target_compile_definitions(sourcemeta_core_jsonschema_unit
# JSON Schema Referencing Suite
# See https://github.com/python-jsonschema/referencing-suite
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME jsonschema_referencing_suite
FOLDER "Core/JSON Schema"
SOURCES referencingsuite.cc)
target_compile_definitions(sourcemeta_core_jsonschema_referencing_suite_unit
PRIVATE REFERENCING_SUITE_PATH="${PROJECT_SOURCE_DIR}/vendor/referencing-suite/tests")
Expand Down
8 changes: 4 additions & 4 deletions test/packaging/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# TODO: Get install path from a variable?
add_test(NAME packaging.find_package_configure COMMAND
add_test(NAME ${PROJECT_NAME}.find_package_configure COMMAND
"${CMAKE_COMMAND}"
-S "${CMAKE_CURRENT_SOURCE_DIR}/find_package"
-B "${CMAKE_CURRENT_BINARY_DIR}/find_package"
"-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
"-DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH};${PROJECT_SOURCE_DIR}/build/dist"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}")
add_test(NAME packaging.find_package_build COMMAND
add_test(NAME ${PROJECT_NAME}.find_package_build COMMAND
"${CMAKE_COMMAND}"
--build "${CMAKE_CURRENT_BINARY_DIR}/find_package"
--config "${CMAKE_BUILD_TYPE}")
set_tests_properties(packaging.find_package_build
PROPERTIES DEPENDS packaging.find_package_configure)
set_tests_properties(${PROJECT_NAME}.find_package_build
PROPERTIES DEPENDS ${PROJECT_NAME}.find_package_configure)
1 change: 0 additions & 1 deletion test/regex/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME regex
FOLDER "Core/Regex"
SOURCES regex_matches_test.cc regex_to_regex_test.cc)

target_link_libraries(sourcemeta_core_regex_unit
Expand Down
1 change: 0 additions & 1 deletion test/uri/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME uri
FOLDER "Core/URI"
SOURCES
uri_test.cc
uri_fragment_test.cc
Expand Down
1 change: 0 additions & 1 deletion test/yaml/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sourcemeta_googletest(NAMESPACE sourcemeta PROJECT core NAME yaml
FOLDER "Core/YAML"
SOURCES
yaml_parse_test.cc)

Expand Down

10 comments on commit 1257bcd

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.762813735588705 ns/iter 1.7950566156935461 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.7062987216556724 ns/iter 1.853251665431244 ns/iter 0.92
Regex_Period_Asterisk 1.7170224401277505 ns/iter 1.8290267267128908 ns/iter 0.94
Regex_Group_Period_Asterisk_Group 1.7078818425111684 ns/iter 1.714939161533693 ns/iter 1.00
Regex_Period_Plus 2.03779904207622 ns/iter 2.1248440910745607 ns/iter 0.96
Regex_Period 2.0494848694318275 ns/iter 2.1599833173064344 ns/iter 0.95
Regex_Caret_Period_Plus_Dollar 2.091276289885486 ns/iter 2.0614503013614063 ns/iter 1.01
Regex_Caret_Group_Period_Plus_Group_Dollar 2.157344476251387 ns/iter 2.0451073143676712 ns/iter 1.05
Regex_Caret_Period_Asterisk_Dollar 1.8651844164912565 ns/iter 1.709511790274934 ns/iter 1.09
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.0036174560476088 ns/iter 1.7085095405480262 ns/iter 1.17
Regex_Caret_X_Hyphen 7.366018857010234 ns/iter 7.218675493797549 ns/iter 1.02
Regex_Period_Md_Dollar 78.05687163623642 ns/iter 73.80735190269515 ns/iter 1.06
Regex_Caret_Slash_Period_Asterisk 5.40985306543997 ns/iter 5.4597284438883324 ns/iter 0.99
Regex_Caret_Period_Range_Dollar 2.4118846079335685 ns/iter 2.3743588472589137 ns/iter 1.02
Regex_Nested_Backtrack 798.5402757628793 ns/iter 826.473008475541 ns/iter 0.97
JSON_Array_Of_Objects_Unique 354.84636363823347 ns/iter 353.1155985589121 ns/iter 1.00
JSON_Parse_1 24015.79994487903 ns/iter 23067.212471808623 ns/iter 1.04
JSON_Fast_Hash_Helm_Chart_Lock 51.670433752831066 ns/iter 52.241250931299895 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 132.99922029773558 ns/iter 128.76680583079008 ns/iter 1.03
JSON_String_Equal/10 8.50966352541283 ns/iter 8.115481956691076 ns/iter 1.05
JSON_String_Equal/100 6.662755330520673 ns/iter 6.531278869154012 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 0.38907403152767767 ns/iter 0.34860368904708167 ns/iter 1.12
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.5045052442676585 ns/iter 3.15340390644528 ns/iter 1.11
JSON_String_Fast_Hash/10 1.7768133773696004 ns/iter 1.7729959032769385 ns/iter 1.00
JSON_String_Fast_Hash/100 2.0986388480694704 ns/iter 2.2350271241018347 ns/iter 0.94
JSON_String_Key_Hash/10 1.3789031886924732 ns/iter 1.5036848858631668 ns/iter 0.92
JSON_String_Key_Hash/100 1.5295485504197825 ns/iter 1.4030709433194684 ns/iter 1.09
JSON_Object_Defines_Miss_Same_Length 2.4406980790961406 ns/iter 2.34031611105411 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Small 2.6317956293122426 ns/iter 2.335770717460812 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 2.4809116181395776 ns/iter 2.389202661606593 ns/iter 1.04
Pointer_Object_Traverse 21.248313851062505 ns/iter 18.285521581718758 ns/iter 1.16
Pointer_Object_Try_Traverse 23.42859283310618 ns/iter 23.210407602056836 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 185.86240822866856 ns/iter 183.20189570877227 ns/iter 1.01

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.2276390949350864 ns/iter 2.2162926137557424 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.207372090979747 ns/iter 2.19925760508802 ns/iter 1.00
Regex_Period_Asterisk 2.2208303977670516 ns/iter 2.222055011372764 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 2.210546278082364 ns/iter 2.2159846646958856 ns/iter 1.00
Regex_Period_Plus 2.7981178768302453 ns/iter 2.7984984732370224 ns/iter 1.00
Regex_Period 2.826390024933924 ns/iter 2.7973273744300964 ns/iter 1.01
Regex_Caret_Period_Plus_Dollar 2.4907914253720036 ns/iter 2.7972943806127115 ns/iter 0.89
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4907432711116786 ns/iter 2.799724504973251 ns/iter 0.89
Regex_Caret_Period_Asterisk_Dollar 2.487289294195517 ns/iter 3.4175891559231735 ns/iter 0.73
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.5017427994701245 ns/iter 3.0677715740681295 ns/iter 0.82
Regex_Caret_X_Hyphen 13.065518156753292 ns/iter 12.534412000613331 ns/iter 1.04
Regex_Period_Md_Dollar 81.98842219362292 ns/iter 81.91681405256837 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 6.841942928296982 ns/iter 6.6872714057223055 ns/iter 1.02
Regex_Caret_Period_Range_Dollar 4.041676600507129 ns/iter 2.799913534837519 ns/iter 1.44
Regex_Nested_Backtrack 501.2096276920053 ns/iter 506.9051855918277 ns/iter 0.99
JSON_Array_Of_Objects_Unique 403.9599247692584 ns/iter 404.5395811087389 ns/iter 1.00
JSON_Parse_1 30371.778528168976 ns/iter 32879.94732878171 ns/iter 0.92
JSON_Fast_Hash_Helm_Chart_Lock 59.294185501550444 ns/iter 59.26342336518386 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 159.06202531931987 ns/iter 151.09449677582927 ns/iter 1.05
JSON_String_Equal/10 6.539942714597311 ns/iter 6.221398210396156 ns/iter 1.05
JSON_String_Equal/100 6.955766992936672 ns/iter 6.845746210589001 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9350724448772678 ns/iter 0.9347560554982254 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.607969756410908 ns/iter 14.604553607377483 ns/iter 1.00
JSON_String_Fast_Hash/10 2.4866879332400433 ns/iter 2.489004316153174 ns/iter 1.00
JSON_String_Fast_Hash/100 2.486764113675108 ns/iter 2.4882760539049587 ns/iter 1.00
JSON_String_Key_Hash/10 2.6432087277133762 ns/iter 2.6915433373998323 ns/iter 0.98
JSON_String_Key_Hash/100 1.867342288945304 ns/iter 1.8671227177219818 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.736864006606955 ns/iter 3.7379340161621424 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.737446357747716 ns/iter 3.7368265537435987 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7354078789303764 ns/iter 3.7354244449260205 ns/iter 1.00
Pointer_Object_Traverse 44.34137779700032 ns/iter 44.31272349617659 ns/iter 1.00
Pointer_Object_Try_Traverse 52.362059084321544 ns/iter 52.35096127677514 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 307.16200900180246 ns/iter 336.7260238297816 ns/iter 0.91

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Pointer_Object_Traverse 46.023660746213245 ns/iter 45.32103746526691 ns/iter 1.02
Pointer_Object_Try_Traverse 26.174175864366056 ns/iter 26.155797626481306 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 144.85965892401134 ns/iter 144.25206995015336 ns/iter 1.00
JSON_Array_Of_Objects_Unique 409.78612578944075 ns/iter 423.68275324715 ns/iter 0.97
JSON_Parse_1 33019.59593817993 ns/iter 33175.350879684425 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 66.4389592521691 ns/iter 62.62528667570228 ns/iter 1.06
JSON_Equality_Helm_Chart_Lock 155.6662469069216 ns/iter 149.21883704557348 ns/iter 1.04
JSON_String_Equal/10 6.342932017394557 ns/iter 6.34636903337211 ns/iter 1.00
JSON_String_Equal/100 6.960166405141716 ns/iter 6.96372439377715 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9339659518423722 ns/iter 0.9347843746682979 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.286685223729961 ns/iter 14.292526535017345 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9321165138142936 ns/iter 0.9376002356537873 ns/iter 0.99
JSON_String_Fast_Hash/100 0.9336583077700352 ns/iter 0.9337595355250484 ns/iter 1.00
JSON_String_Key_Hash/10 1.6740133164609898 ns/iter 1.6725387254018165 ns/iter 1.00
JSON_String_Key_Hash/100 1.9836535648648668 ns/iter 1.9837409301886113 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4860457040225192 ns/iter 2.4875158809874662 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.4862099044479593 ns/iter 2.4866713285663824 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.107568121438949 ns/iter 3.115256555315382 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.4174524470501275 ns/iter 3.4201361579092713 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.423084782367761 ns/iter 3.4197119717306235 ns/iter 1.00
Regex_Period_Asterisk 3.4242819629997387 ns/iter 3.4392454973788666 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.4239371276738093 ns/iter 3.426070311371711 ns/iter 1.00
Regex_Period_Plus 3.7292761593445816 ns/iter 3.420809889513224 ns/iter 1.09
Regex_Period 3.732549682818367 ns/iter 3.419203399803127 ns/iter 1.09
Regex_Caret_Period_Plus_Dollar 3.7334109797061106 ns/iter 3.4242043506928064 ns/iter 1.09
Regex_Caret_Group_Period_Plus_Group_Dollar 3.7335632042985427 ns/iter 3.4216662886505502 ns/iter 1.09
Regex_Caret_Period_Asterisk_Dollar 4.657924101526652 ns/iter 3.7310742693515957 ns/iter 1.25
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.660223549639374 ns/iter 3.7295946349882154 ns/iter 1.25
Regex_Caret_X_Hyphen 12.43649815614569 ns/iter 13.273091627352622 ns/iter 0.94
Regex_Period_Md_Dollar 88.87122596148564 ns/iter 89.88527086696136 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 8.083960892628033 ns/iter 8.08154110946453 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.660913030028226 ns/iter 4.661508996071633 ns/iter 1.00
Regex_Nested_Backtrack 817.3081984619707 ns/iter 836.7374187509896 ns/iter 0.98

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 7.2188281250009005 ns/iter 6.900263392856892 ns/iter 1.05
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.912746651786301 ns/iter 6.96007589285687 ns/iter 0.99
Regex_Period_Asterisk 6.91683345126387 ns/iter 7.476724330357192 ns/iter 0.93
Regex_Group_Period_Asterisk_Group 6.834025669641973 ns/iter 6.89253880851562 ns/iter 0.99
Regex_Period_Plus 7.247939732142328 ns/iter 7.1573515624999215 ns/iter 1.01
Regex_Period 7.371712467091553 ns/iter 7.5322366071427025 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 7.154970503771307 ns/iter 7.250621651784885 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 7.325829241071296 ns/iter 7.407758928571643 ns/iter 0.99
Regex_Caret_Period_Asterisk_Dollar 7.088251785714102 ns/iter 6.974462053570869 ns/iter 1.02
Regex_Caret_Group_Period_Asterisk_Group_Dollar 7.31205800307142 ns/iter 6.881459821428848 ns/iter 1.06
Regex_Caret_X_Hyphen 14.244687659620325 ns/iter 11.760376562499175 ns/iter 1.21
Regex_Period_Md_Dollar 153.89837053572109 ns/iter 151.39319196428858 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 10.671557095215734 ns/iter 10.438007812499706 ns/iter 1.02
Regex_Caret_Period_Range_Dollar 7.5762801339277335 ns/iter 7.816242187500068 ns/iter 0.97
Regex_Nested_Backtrack 609.6819642857148 ns/iter 630.9060714285814 ns/iter 0.97
JSON_Array_Of_Objects_Unique 489.64489999991656 ns/iter 495.9793749999822 ns/iter 0.99
JSON_Parse_1 79547.22098214415 ns/iter 82169.85491072494 ns/iter 0.97
JSON_Fast_Hash_Helm_Chart_Lock 63.882388392867895 ns/iter 66.78844642857078 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 189.8898115972913 ns/iter 187.488820311524 ns/iter 1.01
JSON_String_Equal/10 9.075865138053603 ns/iter 9.012378977624522 ns/iter 1.01
JSON_String_Equal/100 9.91610781250074 ns/iter 9.955181205556839 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1721640624999594 ns/iter 2.1685978125002947 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.042254464286183 ns/iter 14.977938549205437 ns/iter 1.00
JSON_String_Fast_Hash/10 4.026611882189804 ns/iter 4.040159845424279 ns/iter 1.00
JSON_String_Fast_Hash/100 4.0372765250662495 ns/iter 4.058628444747891 ns/iter 0.99
JSON_String_Key_Hash/10 7.848053536393195 ns/iter 7.874675223214262 ns/iter 1.00
JSON_String_Key_Hash/100 4.0247843375441406 ns/iter 4.029894382196088 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.7197873147859397 ns/iter 3.7367399933272316 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 4.957058460927951 ns/iter 4.95210400000019 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.4065834428228965 ns/iter 3.418432672467101 ns/iter 1.00
Pointer_Object_Traverse 48.743209999997816 ns/iter 50.079840000000786 ns/iter 0.97
Pointer_Object_Try_Traverse 67.69966964285906 ns/iter 67.7630892857195 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 167.46646657140232 ns/iter 179.16354324754678 ns/iter 0.93

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/gcc)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.0195352121306307 ns/iter 1.9247922871571648 ns/iter 1.05
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0044123012923354 ns/iter 1.9506176550170498 ns/iter 1.03
Regex_Period_Asterisk 2.75059972573592 ns/iter 1.9470040286959447 ns/iter 1.41
Regex_Group_Period_Asterisk_Group 2.1223706807555174 ns/iter 1.9125224586607763 ns/iter 1.11
Regex_Period_Plus 2.040972518982862 ns/iter 1.9110298431902022 ns/iter 1.07
Regex_Period 1.9821743014098978 ns/iter 1.954149280151372 ns/iter 1.01
Regex_Caret_Period_Plus_Dollar 1.9915841120050153 ns/iter 1.923371330147804 ns/iter 1.04
Regex_Caret_Group_Period_Plus_Group_Dollar 1.953160059113542 ns/iter 1.925122438015843 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 1.9299199508174247 ns/iter 1.9493304310313206 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.267588344551017 ns/iter 2.2358413501957233 ns/iter 1.01
Regex_Caret_X_Hyphen 6.192077472735549 ns/iter 6.111231946522103 ns/iter 1.01
Regex_Period_Md_Dollar 71.82328415201803 ns/iter 69.7881278065978 ns/iter 1.03
Regex_Caret_Slash_Period_Asterisk 4.8515080422239345 ns/iter 4.4487990864563836 ns/iter 1.09
Regex_Caret_Period_Range_Dollar 1.9913458953135965 ns/iter 1.9582676864443849 ns/iter 1.02
Regex_Nested_Backtrack 864.3879016345603 ns/iter 830.6790275992772 ns/iter 1.04
JSON_Array_Of_Objects_Unique 207.02069793080955 ns/iter 214.11397532785048 ns/iter 0.97
JSON_Parse_1 23802.662074479005 ns/iter 23392.437118194484 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 24.20943667035933 ns/iter 25.272008005675385 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 116.33542127616542 ns/iter 115.70502784304887 ns/iter 1.01
JSON_String_Equal/10 5.411902958484133 ns/iter 5.45784997069716 ns/iter 0.99
JSON_String_Equal/100 5.159746236368902 ns/iter 5.171498426498031 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7505964390304584 ns/iter 0.7579414911608794 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.4991555376971326 ns/iter 3.5355491327623945 ns/iter 0.99
JSON_String_Fast_Hash/10 1.9564389130318078 ns/iter 1.944182201417723 ns/iter 1.01
JSON_String_Fast_Hash/100 1.920578342685858 ns/iter 1.9553813386451515 ns/iter 0.98
JSON_String_Key_Hash/10 1.521060614610012 ns/iter 1.4617415479323208 ns/iter 1.04
JSON_String_Key_Hash/100 1.968544356336936 ns/iter 2.0130885233393405 ns/iter 0.98
JSON_Object_Defines_Miss_Same_Length 1.767188685547873 ns/iter 1.7768491719319544 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 1.916462914232256 ns/iter 2.128341934587564 ns/iter 0.90
JSON_Object_Defines_Miss_Too_Large 1.745115102305819 ns/iter 1.7540009363519242 ns/iter 0.99
Pointer_Object_Traverse 55.23822930604589 ns/iter 55.35070630252534 ns/iter 1.00
Pointer_Object_Try_Traverse 36.559372616828064 ns/iter 36.30256837161788 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 157.1121933454952 ns/iter 161.85986699265626 ns/iter 0.97

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.6242845443964553 ns/iter 1.7950566156935461 ns/iter 0.90
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.62502555568287 ns/iter 1.853251665431244 ns/iter 0.88
Regex_Period_Asterisk 1.622499673363136 ns/iter 1.8290267267128908 ns/iter 0.89
Regex_Group_Period_Asterisk_Group 1.6238151160451513 ns/iter 1.714939161533693 ns/iter 0.95
Regex_Period_Plus 1.9451339990160716 ns/iter 2.1248440910745607 ns/iter 0.92
Regex_Period 1.9534369697853329 ns/iter 2.1599833173064344 ns/iter 0.90
Regex_Caret_Period_Plus_Dollar 1.9633298920162394 ns/iter 2.0614503013614063 ns/iter 0.95
Regex_Caret_Group_Period_Plus_Group_Dollar 1.9477453562108746 ns/iter 2.0451073143676712 ns/iter 0.95
Regex_Caret_Period_Asterisk_Dollar 1.622410727080435 ns/iter 1.709511790274934 ns/iter 0.95
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.6324873128085118 ns/iter 1.7085095405480262 ns/iter 0.96
Regex_Caret_X_Hyphen 6.811802070955476 ns/iter 7.218675493797549 ns/iter 0.94
Regex_Period_Md_Dollar 69.70843315133743 ns/iter 73.80735190269515 ns/iter 0.94
Regex_Caret_Slash_Period_Asterisk 5.20808304942807 ns/iter 5.4597284438883324 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 2.2738404350183 ns/iter 2.3743588472589137 ns/iter 0.96
Regex_Nested_Backtrack 749.175204166856 ns/iter 826.473008475541 ns/iter 0.91
JSON_Array_Of_Objects_Unique 339.19625607073755 ns/iter 353.1155985589121 ns/iter 0.96
JSON_Parse_1 22336.549090328874 ns/iter 23067.212471808623 ns/iter 0.97
JSON_Fast_Hash_Helm_Chart_Lock 50.39685420000524 ns/iter 52.241250931299895 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 123.07386589409097 ns/iter 128.76680583079008 ns/iter 0.96
JSON_String_Equal/10 7.7912150726090665 ns/iter 8.115481956691076 ns/iter 0.96
JSON_String_Equal/100 6.181523996244418 ns/iter 6.531278869154012 ns/iter 0.95
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3258073992922958 ns/iter 0.34860368904708167 ns/iter 0.93
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.0037047353187116 ns/iter 3.15340390644528 ns/iter 0.95
JSON_String_Fast_Hash/10 1.6223881575700625 ns/iter 1.7729959032769385 ns/iter 0.92
JSON_String_Fast_Hash/100 1.9462895786067127 ns/iter 2.2350271241018347 ns/iter 0.87
JSON_String_Key_Hash/10 1.2966909302510439 ns/iter 1.5036848858631668 ns/iter 0.86
JSON_String_Key_Hash/100 1.2970551377198365 ns/iter 1.4030709433194684 ns/iter 0.92
JSON_Object_Defines_Miss_Same_Length 2.271712336590028 ns/iter 2.34031611105411 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Small 2.272053646905853 ns/iter 2.335770717460812 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Large 2.2769966015672507 ns/iter 2.389202661606593 ns/iter 0.95
Pointer_Object_Traverse 17.537894980485266 ns/iter 18.285521581718758 ns/iter 0.96
Pointer_Object_Try_Traverse 22.51325369929288 ns/iter 23.210407602056836 ns/iter 0.97
Pointer_Push_Back_Pointer_To_Weak_Pointer 179.1921423341727 ns/iter 183.20189570877227 ns/iter 0.98

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.205439895388263 ns/iter 2.2162926137557424 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.2126817072631573 ns/iter 2.19925760508802 ns/iter 1.01
Regex_Period_Asterisk 2.2034129072151956 ns/iter 2.222055011372764 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 2.213023754340643 ns/iter 2.2159846646958856 ns/iter 1.00
Regex_Period_Plus 2.4860243981552057 ns/iter 2.7984984732370224 ns/iter 0.89
Regex_Period 2.487332853235051 ns/iter 2.7973273744300964 ns/iter 0.89
Regex_Caret_Period_Plus_Dollar 2.4864510430072015 ns/iter 2.7972943806127115 ns/iter 0.89
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4887675853391213 ns/iter 2.799724504973251 ns/iter 0.89
Regex_Caret_Period_Asterisk_Dollar 2.4861564142463153 ns/iter 3.4175891559231735 ns/iter 0.73
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.4859757167804397 ns/iter 3.0677715740681295 ns/iter 0.81
Regex_Caret_X_Hyphen 12.545757840382844 ns/iter 12.534412000613331 ns/iter 1.00
Regex_Period_Md_Dollar 81.93226215139974 ns/iter 81.91681405256837 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 5.5975533577868966 ns/iter 6.6872714057223055 ns/iter 0.84
Regex_Caret_Period_Range_Dollar 3.109692667794566 ns/iter 2.799913534837519 ns/iter 1.11
Regex_Nested_Backtrack 498.7616609403319 ns/iter 506.9051855918277 ns/iter 0.98
JSON_Array_Of_Objects_Unique 403.8794275729227 ns/iter 404.5395811087389 ns/iter 1.00
JSON_Parse_1 30355.308840811966 ns/iter 32879.94732878171 ns/iter 0.92
JSON_Fast_Hash_Helm_Chart_Lock 59.397387661783384 ns/iter 59.26342336518386 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 152.3325775459292 ns/iter 151.09449677582927 ns/iter 1.01
JSON_String_Equal/10 6.278630441306394 ns/iter 6.221398210396156 ns/iter 1.01
JSON_String_Equal/100 6.844555140583583 ns/iter 6.845746210589001 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9349485886262672 ns/iter 0.9347560554982254 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.596761932766306 ns/iter 14.604553607377483 ns/iter 1.00
JSON_String_Fast_Hash/10 2.4905365115606246 ns/iter 2.489004316153174 ns/iter 1.00
JSON_String_Fast_Hash/100 2.485866395952339 ns/iter 2.4882760539049587 ns/iter 1.00
JSON_String_Key_Hash/10 2.689432798418405 ns/iter 2.6915433373998323 ns/iter 1.00
JSON_String_Key_Hash/100 1.8681679855168551 ns/iter 1.8671227177219818 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.7388454434520777 ns/iter 3.7379340161621424 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7326965893851694 ns/iter 3.7368265537435987 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7505857611722533 ns/iter 3.7354244449260205 ns/iter 1.00
Pointer_Object_Traverse 44.38106578275717 ns/iter 44.31272349617659 ns/iter 1.00
Pointer_Object_Try_Traverse 52.27888260706735 ns/iter 52.35096127677514 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 305.27287609245764 ns/iter 336.7260238297816 ns/iter 0.91

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 6.871592633928003 ns/iter 6.900263392856892 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.895277901785489 ns/iter 6.96007589285687 ns/iter 0.99
Regex_Period_Asterisk 7.614353537436987 ns/iter 7.476724330357192 ns/iter 1.02
Regex_Group_Period_Asterisk_Group 6.916473214284886 ns/iter 6.89253880851562 ns/iter 1.00
Regex_Period_Plus 7.235312500001154 ns/iter 7.1573515624999215 ns/iter 1.01
Regex_Period 7.431838169643815 ns/iter 7.5322366071427025 ns/iter 0.99
Regex_Caret_Period_Plus_Dollar 7.424514285714524 ns/iter 7.250621651784885 ns/iter 1.02
Regex_Caret_Group_Period_Plus_Group_Dollar 7.2622868303590895 ns/iter 7.407758928571643 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 7.008048183000505 ns/iter 6.974462053570869 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.838024553569459 ns/iter 6.881459821428848 ns/iter 0.99
Regex_Caret_X_Hyphen 14.253828284581564 ns/iter 11.760376562499175 ns/iter 1.21
Regex_Period_Md_Dollar 150.70595982145107 ns/iter 151.39319196428858 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 10.442409375002626 ns/iter 10.438007812499706 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 7.601148437499055 ns/iter 7.816242187500068 ns/iter 0.97
Regex_Nested_Backtrack 613.0490178571384 ns/iter 630.9060714285814 ns/iter 0.97
JSON_Array_Of_Objects_Unique 487.9731047266473 ns/iter 495.9793749999822 ns/iter 0.98
JSON_Parse_1 80341.9196428631 ns/iter 82169.85491072494 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 63.768937500015 ns/iter 66.78844642857078 ns/iter 0.95
JSON_Equality_Helm_Chart_Lock 186.75857723832897 ns/iter 187.488820311524 ns/iter 1.00
JSON_String_Equal/10 8.97046986607007 ns/iter 9.012378977624522 ns/iter 1.00
JSON_String_Equal/100 9.896705312960087 ns/iter 9.955181205556839 ns/iter 0.99
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1649006250001435 ns/iter 2.1685978125002947 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.583394768417666 ns/iter 14.977938549205437 ns/iter 0.97
JSON_String_Fast_Hash/10 4.029120185765581 ns/iter 4.040159845424279 ns/iter 1.00
JSON_String_Fast_Hash/100 4.02546451611665 ns/iter 4.058628444747891 ns/iter 0.99
JSON_String_Key_Hash/10 7.736486607142926 ns/iter 7.874675223214262 ns/iter 0.98
JSON_String_Key_Hash/100 4.018915736607097 ns/iter 4.029894382196088 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.712352671942207 ns/iter 3.7367399933272316 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 4.960622077000618 ns/iter 4.95210400000019 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.4072256303244104 ns/iter 3.418432672467101 ns/iter 1.00
Pointer_Object_Traverse 49.056687500004564 ns/iter 50.079840000000786 ns/iter 0.98
Pointer_Object_Try_Traverse 67.76957589284142 ns/iter 67.7630892857195 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 170.63824803384645 ns/iter 179.16354324754678 ns/iter 0.95

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/gcc)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9531142180088146 ns/iter 1.9247922871571648 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.9498255446131942 ns/iter 1.9506176550170498 ns/iter 1.00
Regex_Period_Asterisk 1.9779014130368056 ns/iter 1.9470040286959447 ns/iter 1.02
Regex_Group_Period_Asterisk_Group 1.9509459980409456 ns/iter 1.9125224586607763 ns/iter 1.02
Regex_Period_Plus 1.9621694685633304 ns/iter 1.9110298431902022 ns/iter 1.03
Regex_Period 1.949194914185844 ns/iter 1.954149280151372 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.9527610996306506 ns/iter 1.923371330147804 ns/iter 1.02
Regex_Caret_Group_Period_Plus_Group_Dollar 1.9511618218346114 ns/iter 1.925122438015843 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 1.9427383078363005 ns/iter 1.9493304310313206 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.278289086454607 ns/iter 2.2358413501957233 ns/iter 1.02
Regex_Caret_X_Hyphen 6.152429629480925 ns/iter 6.111231946522103 ns/iter 1.01
Regex_Period_Md_Dollar 73.45754822765414 ns/iter 69.7881278065978 ns/iter 1.05
Regex_Caret_Slash_Period_Asterisk 4.3973732440260225 ns/iter 4.4487990864563836 ns/iter 0.99
Regex_Caret_Period_Range_Dollar 1.9452588904485049 ns/iter 1.9582676864443849 ns/iter 0.99
Regex_Nested_Backtrack 823.475558385263 ns/iter 830.6790275992772 ns/iter 0.99
JSON_Array_Of_Objects_Unique 197.1921061149052 ns/iter 214.11397532785048 ns/iter 0.92
JSON_Parse_1 22784.70619556691 ns/iter 23392.437118194484 ns/iter 0.97
JSON_Fast_Hash_Helm_Chart_Lock 23.579894551111536 ns/iter 25.272008005675385 ns/iter 0.93
JSON_Equality_Helm_Chart_Lock 114.10370617442618 ns/iter 115.70502784304887 ns/iter 0.99
JSON_String_Equal/10 5.386388274571394 ns/iter 5.45784997069716 ns/iter 0.99
JSON_String_Equal/100 5.056697923911345 ns/iter 5.171498426498031 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 0.744421713776442 ns/iter 0.7579414911608794 ns/iter 0.98
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.4459626026403023 ns/iter 3.5355491327623945 ns/iter 0.97
JSON_String_Fast_Hash/10 1.8910378419897973 ns/iter 1.944182201417723 ns/iter 0.97
JSON_String_Fast_Hash/100 1.8918060223814475 ns/iter 1.9553813386451515 ns/iter 0.97
JSON_String_Key_Hash/10 1.4571920086559111 ns/iter 1.4617415479323208 ns/iter 1.00
JSON_String_Key_Hash/100 1.919586164786371 ns/iter 2.0130885233393405 ns/iter 0.95
JSON_Object_Defines_Miss_Same_Length 1.72887396665273 ns/iter 1.7768491719319544 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Small 1.9600240064695464 ns/iter 2.128341934587564 ns/iter 0.92
JSON_Object_Defines_Miss_Too_Large 1.729811086743139 ns/iter 1.7540009363519242 ns/iter 0.99
Pointer_Object_Traverse 54.385964188424914 ns/iter 55.35070630252534 ns/iter 0.98
Pointer_Object_Try_Traverse 36.15190856917258 ns/iter 36.30256837161788 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 154.00825395065823 ns/iter 161.85986699265626 ns/iter 0.95

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Benchmark suite Current: 1257bcd Previous: ddad44e Ratio
Pointer_Object_Traverse 46.72699325767282 ns/iter 45.32103746526691 ns/iter 1.03
Pointer_Object_Try_Traverse 26.188059629886595 ns/iter 26.155797626481306 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 145.2481230307094 ns/iter 144.25206995015336 ns/iter 1.01
JSON_Array_Of_Objects_Unique 415.3623936739927 ns/iter 423.68275324715 ns/iter 0.98
JSON_Parse_1 33661.15866928358 ns/iter 33175.350879684425 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 68.83588568649263 ns/iter 62.62528667570228 ns/iter 1.10
JSON_Equality_Helm_Chart_Lock 149.54224050901766 ns/iter 149.21883704557348 ns/iter 1.00
JSON_String_Equal/10 6.345388239459724 ns/iter 6.34636903337211 ns/iter 1.00
JSON_String_Equal/100 7.01363113078847 ns/iter 6.96372439377715 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9347266704606404 ns/iter 0.9347843746682979 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.292050205515787 ns/iter 14.292526535017345 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9350701900004398 ns/iter 0.9376002356537873 ns/iter 1.00
JSON_String_Fast_Hash/100 0.937087401162159 ns/iter 0.9337595355250484 ns/iter 1.00
JSON_String_Key_Hash/10 1.671596716626417 ns/iter 1.6725387254018165 ns/iter 1.00
JSON_String_Key_Hash/100 2.0421013904697034 ns/iter 1.9837409301886113 ns/iter 1.03
JSON_Object_Defines_Miss_Same_Length 2.493658442781414 ns/iter 2.4875158809874662 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.490102170819413 ns/iter 2.4866713285663824 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.108175935748401 ns/iter 3.115256555315382 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.4182006829022353 ns/iter 3.4201361579092713 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.419306177994497 ns/iter 3.4197119717306235 ns/iter 1.00
Regex_Period_Asterisk 3.4243828349055567 ns/iter 3.4392454973788666 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.435013680213748 ns/iter 3.426070311371711 ns/iter 1.00
Regex_Period_Plus 3.7349874050308993 ns/iter 3.420809889513224 ns/iter 1.09
Regex_Period 3.7315567909304734 ns/iter 3.419203399803127 ns/iter 1.09
Regex_Caret_Period_Plus_Dollar 3.737034539386885 ns/iter 3.4242043506928064 ns/iter 1.09
Regex_Caret_Group_Period_Plus_Group_Dollar 3.742940083824722 ns/iter 3.4216662886505502 ns/iter 1.09
Regex_Caret_Period_Asterisk_Dollar 3.4292197649776157 ns/iter 3.7310742693515957 ns/iter 0.92
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.423995798986543 ns/iter 3.7295946349882154 ns/iter 0.92
Regex_Caret_X_Hyphen 13.119482776908558 ns/iter 13.273091627352622 ns/iter 0.99
Regex_Period_Md_Dollar 89.7816024050595 ns/iter 89.88527086696136 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 7.148802349926032 ns/iter 8.08154110946453 ns/iter 0.88
Regex_Caret_Period_Range_Dollar 4.665792559533156 ns/iter 4.661508996071633 ns/iter 1.00
Regex_Nested_Backtrack 817.8560000000089 ns/iter 836.7374187509896 ns/iter 0.98

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

Please sign in to comment.