From 89adde15833e321c02cab33692c9d768348f8597 Mon Sep 17 00:00:00 2001 From: Alexandre Choura Date: Fri, 29 Dec 2023 14:29:00 +0100 Subject: [PATCH] Consider a `profiler` and `tracer` scenario --- .gitlab/benchmarks.yml | 40 +++++++++++++++++++++++++++++++--------- benchmark/runall.sh | 34 +++++++++++++++++++--------------- 2 files changed, 50 insertions(+), 24 deletions(-) diff --git a/.gitlab/benchmarks.yml b/.gitlab/benchmarks.yml index ed44d15f1f4..f4cf337dee2 100644 --- a/.gitlab/benchmarks.yml +++ b/.gitlab/benchmarks.yml @@ -3,16 +3,8 @@ variables: # The Dockerfile to this image is located at: # https://github.com/DataDog/benchmarking-platform/tree/dd-trace-php -microbenchmarks: +.microbenchmarks: stage: benchmarks - rules: - - if: $CI_PIPELINE_SOURCE != "schedule" - changes: - paths: - - profiling/**/* - compare_to: "master" - when: on_success - - when: manual tags: ["runner:apm-k8s-tweaked-metal"] needs: [] image: @@ -41,6 +33,36 @@ microbenchmarks: KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-php FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: "true" +benchmarks-profiler: + extends: .microbenchmarks + rules: + - if: $CI_PIPELINE_SOURCE != "schedule" + changes: + paths: + - profiling/**/* + compare_to: "master" + when: on_success + - when: manual + variables: + SCENARIO: "profiler" + +benchmarks-tracer: + extends: .microbenchmarks + rules: + - if: $CI_PIPELINE_SOURCE != "schedule" + changes: + paths: + - bridge/* + - ext/**/* + - src/**/* + - zend_abstract_interface/**/* + compare_to: "master" + when: on_success + - when: manual + variables: + SCENARIO: "tracer" + + download_circle_ci_release: stage: benchmarks rules: diff --git a/benchmark/runall.sh b/benchmark/runall.sh index aff3595104e..d67acebb7a9 100755 --- a/benchmark/runall.sh +++ b/benchmark/runall.sh @@ -2,23 +2,27 @@ set -exu -# Run Profiling Benchmarks -cd ../profiling/ +if [ "$SCENARIO" = "profiler" ]; then + # Run Profiling Benchmarks + cd ../profiling/ -cargo build --release --features trigger_time_sample + cargo build --release --features trigger_time_sample -sirun benches/memory.json > "$ARTIFACTS_DIR/sirun_mem.ndjson" + sirun benches/memory.json > "$ARTIFACTS_DIR/sirun_mem.ndjson" -sed -i -e "s/crate-type.*$/crate-type = [\"rlib\"]/g" Cargo.toml + sed -i -e "s/crate-type.*$/crate-type = [\"rlib\"]/g" Cargo.toml -cargo bench --features stack_walking_tests -- --noplot + cargo bench --features stack_walking_tests -- --noplot +elif [ "$SCENARIO" = "tracer" ]; then + # Run Trace Benchmarks + cd .. + make composer_tests_update -# Run Trace Benchmarks -cd .. -make composer_tests_update -## Non-OPCache Benchmarks -make benchmarks -cp tests/Benchmarks/reports/tracer-bench-results.csv "$ARTIFACTS_DIR" -## OPCache Benchmarks -make benchmarks_opcache -cp tests/Benchmarks/reports/tracer-bench-results-opcache.csv "$ARTIFACTS_DIR" + ## Non-OPCache Benchmarks + make benchmarks + cp tests/Benchmarks/reports/tracer-bench-results.csv "$ARTIFACTS_DIR" + + ## OPCache Benchmarks + make benchmarks_opcache + cp tests/Benchmarks/reports/tracer-bench-results-opcache.csv "$ARTIFACTS_DIR" +fi