From bbe971d20543d85019bf47c8eb721dc4b9b6fd57 Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 00:33:50 +0300 Subject: [PATCH 01/10] add benchmarks --- .github/workflows/ci v2.yml | 7 ++++--- src/benchmarks/CMakeLists.txt | 2 ++ src/benchmarks/benchmarks.cpp | 20 ++++++++++++++++++++ src/rpp/rpp/observers/details/fwd.hpp | 4 ++++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci v2.yml b/.github/workflows/ci v2.yml index 8d4208783..0654a5e98 100644 --- a/.github/workflows/ci v2.yml +++ b/.github/workflows/ci v2.yml @@ -140,10 +140,11 @@ jobs: {name: ci-macos, os: macos-12}] type: [tests, benchmarks] build_type: [{config: Release, test_preset: ci-tests}, {config: Debug, test_preset: ci-tests-debug}] + optimization_disabled: [{mode: 1, postfix: ""}, {mode: 0, postfix: " (Optimizations disabled)"}] timeout-minutes: 20 runs-on: ${{ matrix.config.os }} - name: ${{ matrix.type }} ${{ matrix.config.name }} ${{ matrix.build_type.config }} + name: ${{ matrix.type }} ${{ matrix.config.name }} ${{ matrix.build_type.config }}${{ matrix.optimization_disabled.postfix}} steps: - uses: actions/checkout@v4 @@ -198,7 +199,7 @@ jobs: uses: lukka/run-cmake@v10 with: configurePreset: ${{ matrix.config.name }}-${{ matrix.type }} - configurePresetAdditionalArgs: "['-DCMAKE_BUILD_TYPE=${{ matrix.build_type.config }}', '-DCMAKE_CONFIGURATION_TYPES=${{ matrix.build_type.config }}']" + configurePresetAdditionalArgs: "['-DCMAKE_BUILD_TYPE=${{ matrix.build_type.config }}', '-DCMAKE_CONFIGURATION_TYPES=${{ matrix.build_type.config }}', '-DRPP_DISABLE_DISPOSABLES_OPTIMZIATION=${{matrix.optimization_disabled.mode}}']" buildPreset: ci-build buildPresetAdditionalArgs: "['--config ${{ matrix.build_type.config }}']" testPreset: ${{matrix.build_type.test_preset}} @@ -208,7 +209,7 @@ jobs: uses: actions/upload-artifact@v4 if: matrix.type == 'benchmarks' && matrix.build_type.config == 'Release' with: - name: ${{ matrix.config.name }} + name: ${{ matrix.config.name }}${{ matrix.optimization_disabled.postfix}} path: ${{github.workspace}}/build/test_results/benchmarks_results.json docs: diff --git a/src/benchmarks/CMakeLists.txt b/src/benchmarks/CMakeLists.txt index 38ffd201f..c73f2c698 100644 --- a/src/benchmarks/CMakeLists.txt +++ b/src/benchmarks/CMakeLists.txt @@ -20,6 +20,8 @@ if (RPP_BUILD_RXCPP) get_target_property(DEP_DIR rxcpp INTERFACE_INCLUDE_DIRECTORIES) target_include_directories(${TARGET} SYSTEM PRIVATE ${DEP_DIR}) endif() +target_compile_definitions(${TARGET} PRIVATE "RPP_DISABLE_DISPOSABLES_OPTIMZIATION=${RPP_DISABLE_DISPOSABLES_OPTIMZIATION}") + set_target_properties(${TARGET} PROPERTIES FOLDER Tests) set_target_properties(${TARGET} PROPERTIES CXX_CLANG_TIDY "") diff --git a/src/benchmarks/benchmarks.cpp b/src/benchmarks/benchmarks.cpp index 616e9631a..65f97acea 100644 --- a/src/benchmarks/benchmarks.cpp +++ b/src/benchmarks/benchmarks.cpp @@ -801,6 +801,26 @@ int main(int argc, char* argv[]) // NOLINT(bugprone-exception-escape) | rxcpp::operators::subscribe([](char v) { ankerl::nanobench::doNotOptimizeAway(v); }); }); } + SECTION("mix operators with disposables and without disposables") + { + TEST_RPP([&]() { + rpp::subjects::publish_subject s{}; + s.get_observable() + | rpp::ops::filter([](int v) -> bool { return v; }) + | rpp::ops::finally([]() noexcept { ankerl::nanobench::doNotOptimizeAway(1); }) + + | rpp::ops::map([](int v) { return rpp::source::just(v * 2, v * 3); }) + | rpp::ops::concat() + + | rpp::ops::filter([](int v) -> bool { return v; }) + | rpp::ops::delay(std::chrono::seconds{0}, rpp::schedulers::immediate{}) + + | rpp::ops::filter([](int v) -> bool { return v; }) + | rpp::ops::subscribe([](int v) { ankerl::nanobench::doNotOptimizeAway(v); }); + s.get_observer().on_next(1); + s.get_observer().on_completed(); + }); + } } // BENCHMARK("Scenarios") if (dump.has_value()) diff --git a/src/rpp/rpp/observers/details/fwd.hpp b/src/rpp/rpp/observers/details/fwd.hpp index 6232b0fdc..72a4d6dc4 100644 --- a/src/rpp/rpp/observers/details/fwd.hpp +++ b/src/rpp/rpp/observers/details/fwd.hpp @@ -74,6 +74,9 @@ namespace rpp::details::observers { static_assert(mode == disposables_mode::Auto || mode == disposables_mode::None || mode == disposables_mode::External || mode == disposables_mode::Boolean); +#if defined(RPP_DISABLE_DISPOSABLES_OPTIMZIATION) and RPP_DISABLE_DISPOSABLES_OPTIMZIATION + return static_cast(nullptr); +#else if constexpr (mode == disposables_mode::Auto) return static_cast(nullptr); else if constexpr (mode == disposables_mode::None) @@ -84,6 +87,7 @@ namespace rpp::details::observers return static_cast(nullptr); else return static_cast(nullptr); +#endif } } // namespace details From 5d67ebc74f44f7be0ef9a7e3c9ddb84cc4bc644f Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 00:34:36 +0300 Subject: [PATCH 02/10] fix --- .github/workflows/ci v2.yml | 2 +- src/benchmarks/CMakeLists.txt | 2 +- src/rpp/rpp/observers/details/fwd.hpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci v2.yml b/.github/workflows/ci v2.yml index 0654a5e98..3b78ff325 100644 --- a/.github/workflows/ci v2.yml +++ b/.github/workflows/ci v2.yml @@ -199,7 +199,7 @@ jobs: uses: lukka/run-cmake@v10 with: configurePreset: ${{ matrix.config.name }}-${{ matrix.type }} - configurePresetAdditionalArgs: "['-DCMAKE_BUILD_TYPE=${{ matrix.build_type.config }}', '-DCMAKE_CONFIGURATION_TYPES=${{ matrix.build_type.config }}', '-DRPP_DISABLE_DISPOSABLES_OPTIMZIATION=${{matrix.optimization_disabled.mode}}']" + configurePresetAdditionalArgs: "['-DCMAKE_BUILD_TYPE=${{ matrix.build_type.config }}', '-DCMAKE_CONFIGURATION_TYPES=${{ matrix.build_type.config }}', '-DRPP_DISABLE_DISPOSABLES_OPTIMIZATION=${{matrix.optimization_disabled.mode}}']" buildPreset: ci-build buildPresetAdditionalArgs: "['--config ${{ matrix.build_type.config }}']" testPreset: ${{matrix.build_type.test_preset}} diff --git a/src/benchmarks/CMakeLists.txt b/src/benchmarks/CMakeLists.txt index c73f2c698..72f281d76 100644 --- a/src/benchmarks/CMakeLists.txt +++ b/src/benchmarks/CMakeLists.txt @@ -20,7 +20,7 @@ if (RPP_BUILD_RXCPP) get_target_property(DEP_DIR rxcpp INTERFACE_INCLUDE_DIRECTORIES) target_include_directories(${TARGET} SYSTEM PRIVATE ${DEP_DIR}) endif() -target_compile_definitions(${TARGET} PRIVATE "RPP_DISABLE_DISPOSABLES_OPTIMZIATION=${RPP_DISABLE_DISPOSABLES_OPTIMZIATION}") +target_compile_definitions(${TARGET} PRIVATE "RPP_DISABLE_DISPOSABLES_OPTIMIZATION=${RPP_DISABLE_DISPOSABLES_OPTIMIZATION}") set_target_properties(${TARGET} PROPERTIES FOLDER Tests) diff --git a/src/rpp/rpp/observers/details/fwd.hpp b/src/rpp/rpp/observers/details/fwd.hpp index 72a4d6dc4..e16a8795f 100644 --- a/src/rpp/rpp/observers/details/fwd.hpp +++ b/src/rpp/rpp/observers/details/fwd.hpp @@ -74,7 +74,7 @@ namespace rpp::details::observers { static_assert(mode == disposables_mode::Auto || mode == disposables_mode::None || mode == disposables_mode::External || mode == disposables_mode::Boolean); -#if defined(RPP_DISABLE_DISPOSABLES_OPTIMZIATION) and RPP_DISABLE_DISPOSABLES_OPTIMZIATION +#if defined(RPP_DISABLE_DISPOSABLES_OPTIMIZATION) and RPP_DISABLE_DISPOSABLES_OPTIMIZATION return static_cast(nullptr); #else if constexpr (mode == disposables_mode::Auto) From 50682976cbe3717279ebe2029720fbb4e8acb0ed Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 00:45:17 +0300 Subject: [PATCH 03/10] Update CMakeLists.txt --- src/benchmarks/CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/benchmarks/CMakeLists.txt b/src/benchmarks/CMakeLists.txt index 72f281d76..a7bc16391 100644 --- a/src/benchmarks/CMakeLists.txt +++ b/src/benchmarks/CMakeLists.txt @@ -20,8 +20,9 @@ if (RPP_BUILD_RXCPP) get_target_property(DEP_DIR rxcpp INTERFACE_INCLUDE_DIRECTORIES) target_include_directories(${TARGET} SYSTEM PRIVATE ${DEP_DIR}) endif() -target_compile_definitions(${TARGET} PRIVATE "RPP_DISABLE_DISPOSABLES_OPTIMIZATION=${RPP_DISABLE_DISPOSABLES_OPTIMIZATION}") - +if(RPP_DISABLE_DISPOSABLES_OPTIMIZATION) + target_compile_definitions(${TARGET} PRIVATE "RPP_DISABLE_DISPOSABLES_OPTIMIZATION=${RPP_DISABLE_DISPOSABLES_OPTIMIZATION}") +endif() set_target_properties(${TARGET} PROPERTIES FOLDER Tests) set_target_properties(${TARGET} PROPERTIES CXX_CLANG_TIDY "") From 97eaa36cd39137a461ed9ede100ac3d2fa584c64 Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 11:41:23 +0300 Subject: [PATCH 04/10] Update ci v2.yml --- .github/workflows/ci v2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci v2.yml b/.github/workflows/ci v2.yml index 3b78ff325..d952d1518 100644 --- a/.github/workflows/ci v2.yml +++ b/.github/workflows/ci v2.yml @@ -140,7 +140,7 @@ jobs: {name: ci-macos, os: macos-12}] type: [tests, benchmarks] build_type: [{config: Release, test_preset: ci-tests}, {config: Debug, test_preset: ci-tests-debug}] - optimization_disabled: [{mode: 1, postfix: ""}, {mode: 0, postfix: " (Optimizations disabled)"}] + optimization_disabled: [{mode: 0, postfix: ""}, {mode: 1, postfix: " (Optimizations disabled)"}] timeout-minutes: 20 runs-on: ${{ matrix.config.os }} From 3da117e60dad035e8467fe852329f4e0f40dc046 Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 22:49:07 +0300 Subject: [PATCH 05/10] try to adapt python --- ci/process_benchmark_data.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ci/process_benchmark_data.py b/ci/process_benchmark_data.py index bdce0dc4f..1b95583a3 100644 --- a/ci/process_benchmark_data.py +++ b/ci/process_benchmark_data.py @@ -29,7 +29,13 @@ def print_metric(v): print("# BENCHMARK RESULTS (AUTOGENERATED)") +optimization_off_suffix = " (Optimizations disabled)" +optimization_off_title = f"rpp{optimization_off_suffix}" for platform, results in new_data.items(): + is_optimization = platform.endswith(optimization_off_suffix) + if is_optimization: + platform = platform[:-len(optimization_off_suffix)] + results = [{**r, "source": optimization_off_title} for r in results if r["source"] == 'rpp'] for r in results: r["commit"] = git_commit r["commit_message"] = commit_message @@ -45,8 +51,8 @@ def print_metric(v): print(f"
\n\n\n## {platform}\n") for title, title_data in group_by(platformResults, lambda x:x["title"]): print(f"
\n\n\n### {title} \n\n\n") - print("name | rxcpp | rpp | prev rpp | ratio") - print("--- | --- | --- | --- | --- ") + print("name | rxcpp | rpp | prev rpp | ratio | rpp no optimization") + print("--- | --- | --- | --- | --- | ---") for name, name_data in group_by(title_data, lambda x: x["name"]): last_2_commits = [list(v) for _, v in group_by(name_data, lambda x: x["commit"])][-2:] @@ -57,12 +63,13 @@ def print_metric(v): cur_vals = {k: list(v)[0] for k, v in group_by(last_2_commits[-1], lambda x: x["source"])} rpp_value = cur_vals.get('rpp', {}).get('median(elapsed)') rxcpp_value = cur_vals.get('rxcpp', {}).get('median(elapsed)') + no_optimization_value = cur_vals.get(optimization_off_title, {}).get('median(elapsed)') ratio = None if prev_value and rpp_value: ratio = rpp_value/prev_value - print(f"{name} | {print_metric(rxcpp_value)} | {print_metric(rpp_value)}| {print_metric(prev_value)} | {ratio if ratio else 0:.2f}") + print(f"{name} | {print_metric(rxcpp_value)} | {print_metric(rpp_value)}| {print_metric(prev_value)} | {ratio if ratio else 0:.2f} | {print_metric(no_optimization_value)}") print("\n
") print(f"
") From 23da9bc83c51ed075717416f3f94b20bda4ef70e Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 23:07:12 +0300 Subject: [PATCH 06/10] extend benchmarks --- src/benchmarks/benchmarks.cpp | 113 +++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 3 deletions(-) diff --git a/src/benchmarks/benchmarks.cpp b/src/benchmarks/benchmarks.cpp index 65f97acea..53521bc96 100644 --- a/src/benchmarks/benchmarks.cpp +++ b/src/benchmarks/benchmarks.cpp @@ -809,7 +809,7 @@ int main(int argc, char* argv[]) // NOLINT(bugprone-exception-escape) | rpp::ops::filter([](int v) -> bool { return v; }) | rpp::ops::finally([]() noexcept { ankerl::nanobench::doNotOptimizeAway(1); }) - | rpp::ops::map([](int v) { return rpp::source::just(v * 2, v * 3); }) + | rpp::ops::map([](int v) { return rpp::immediate_just(v * 2, v * 3); }) | rpp::ops::concat() | rpp::ops::filter([](int v) -> bool { return v; }) @@ -817,10 +817,117 @@ int main(int argc, char* argv[]) // NOLINT(bugprone-exception-escape) | rpp::ops::filter([](int v) -> bool { return v; }) | rpp::ops::subscribe([](int v) { ankerl::nanobench::doNotOptimizeAway(v); }); - s.get_observer().on_next(1); - s.get_observer().on_completed(); + const auto obs = s.get_observer(); + obs.on_next(1); + obs.on_completed(); + }); + + TEST_RXCPP([&]() { + rxcpp::subjects::subject s{}; + s.get_observable() + | rxcpp::operators::filter([](int v) -> bool { return v; }) + | rxcpp::operators::finally([]() noexcept { ankerl::nanobench::doNotOptimizeAway(1); }) + + | rxcpp::operators::map([](int v) { return rxcpp::immediate_just(v * 2, v * 3); }) + | rxcpp::operators::concat() + + | rxcpp::operators::filter([](int v) -> bool { return v; }) + | rxcpp::operators::delay(std::chrono::seconds{0}, rxcpp::identity_immediate()) + + | rxcpp::operators::filter([](int v) -> bool { return v; }) + | rxcpp::operators::subscribe([](int v) { ankerl::nanobench::doNotOptimizeAway(v); }); + const auto obs = s.get_subscriber(); + obs.on_next(1); + obs.on_completed(); }); } + SECTION("single disposable and looooooong chain") + { + TEST_RPP([&]() { + const auto d = rpp::composite_disposable_wrapper::make(); + rpp::source::create([&](auto&& obs) { + obs.set_upstream(rpp::make_callback_disposable([]() noexcept { ankerl::nanobench::doNotOptimizeAway(1); })); + obs.on_next(1); + obs.on_completed(); + }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::operators::map([](int v) { return v * 2; }) + | rpp::ops::subscribe(d, [](int) {}); + }); + + TEST_RXCPP([&]() { + const auto d = rxcpp::composite_subscription{}; + rxcpp::observable<>::create([&](auto&& obs) { + obs.get_subscription().add([]() noexcept { ankerl::nanobench::doNotOptimizeAway(1); }); + obs.on_next(1); + obs.on_completed(); + }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::map([](int v) { return v * 2; }) + | rxcpp::operators::subscribe(d, [](int) {}); + }); + } + } // BENCHMARK("Scenarios") if (dump.has_value()) From 0fd812a5b0c852add6fd5ecf9efb6ae8f0c9d0f8 Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 23:17:24 +0300 Subject: [PATCH 07/10] fix --- src/rpp/rpp/observers/details/fwd.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/rpp/rpp/observers/details/fwd.hpp b/src/rpp/rpp/observers/details/fwd.hpp index e16a8795f..7f21e7d81 100644 --- a/src/rpp/rpp/observers/details/fwd.hpp +++ b/src/rpp/rpp/observers/details/fwd.hpp @@ -75,6 +75,8 @@ namespace rpp::details::observers static_assert(mode == disposables_mode::Auto || mode == disposables_mode::None || mode == disposables_mode::External || mode == disposables_mode::Boolean); #if defined(RPP_DISABLE_DISPOSABLES_OPTIMIZATION) and RPP_DISABLE_DISPOSABLES_OPTIMIZATION + if constexpr (mode == disposables_mode::External) + return static_cast(nullptr); return static_cast(nullptr); #else if constexpr (mode == disposables_mode::Auto) From bc42c669a69c5eceef65ee0fa20b09589b288bc9 Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 23:28:33 +0300 Subject: [PATCH 08/10] fix --- src/rpp/rpp/observers/details/fwd.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rpp/rpp/observers/details/fwd.hpp b/src/rpp/rpp/observers/details/fwd.hpp index 7f21e7d81..89fe914b0 100644 --- a/src/rpp/rpp/observers/details/fwd.hpp +++ b/src/rpp/rpp/observers/details/fwd.hpp @@ -77,7 +77,8 @@ namespace rpp::details::observers #if defined(RPP_DISABLE_DISPOSABLES_OPTIMIZATION) and RPP_DISABLE_DISPOSABLES_OPTIMIZATION if constexpr (mode == disposables_mode::External) return static_cast(nullptr); - return static_cast(nullptr); + else + return static_cast(nullptr); #else if constexpr (mode == disposables_mode::Auto) return static_cast(nullptr); From 3ee778cdfbd20012c4d0ec3d519513fed90cc336 Mon Sep 17 00:00:00 2001 From: Aleksey Loginov Date: Fri, 22 Nov 2024 23:30:16 +0300 Subject: [PATCH 09/10] renmae --- src/benchmarks/benchmarks.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/benchmarks/benchmarks.cpp b/src/benchmarks/benchmarks.cpp index 53521bc96..3743cc520 100644 --- a/src/benchmarks/benchmarks.cpp +++ b/src/benchmarks/benchmarks.cpp @@ -841,7 +841,7 @@ int main(int argc, char* argv[]) // NOLINT(bugprone-exception-escape) obs.on_completed(); }); } - SECTION("single disposable and looooooong chain") + SECTION("single disposable and looooooong indentity chain") { TEST_RPP([&]() { const auto d = rpp::composite_disposable_wrapper::make(); From 4a5dc351edcab99d154abc84c9e65563a39b5f62 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:09:02 +0000 Subject: [PATCH 10/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .github/workflows/comment_benchmarks_v2.yml | 2 +- ci/process_benchmark_data.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/comment_benchmarks_v2.yml b/.github/workflows/comment_benchmarks_v2.yml index 7604bbe8b..021bc8ad6 100644 --- a/.github/workflows/comment_benchmarks_v2.yml +++ b/.github/workflows/comment_benchmarks_v2.yml @@ -27,7 +27,7 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} fetch-depth: 0 - + - name: Download all workflow run artifacts uses: dawidd6/action-download-artifact@v6 with: diff --git a/ci/process_benchmark_data.py b/ci/process_benchmark_data.py index a24e51c59..1b95583a3 100644 --- a/ci/process_benchmark_data.py +++ b/ci/process_benchmark_data.py @@ -74,4 +74,4 @@ def print_metric(v): print(f"") with open("./gh-pages/v2/benchmark_results.json", "w") as f: - json.dump(res, f, indent=4) \ No newline at end of file + json.dump(res, f, indent=4)