#!/usr/bin/env bash set -euo pipefail # Script mestre de execução e consolidação de benchmarks de performance do CyberCore Signer ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" cd "$ROOT_DIR" JAVA_BIN="${JAVA_HOME:-/home/claudecio/.jdks/jdk-25.0.4.1+1}/bin/java" JAVAC_BIN="${JAVA_HOME:-/home/claudecio/.jdks/jdk-25.0.4.1+1}/bin/javac" JAR_FILE="modules/cybercore-app/target/cybercore-signer.jar" echo "=======================================================================" echo " CYBERCORE SIGNER — SUÍTE DE MEDIÇÃO DE PERFORMANCE" echo "=======================================================================" echo "Ambiente: $(uname -s) $(uname -m)" echo "Java: $("$JAVA_BIN" -version 2>&1 | head -n 1)" echo # 1. Medições de Tempo de Inicialização e RSS (Média de 3 execuções) echo "-----------------------------------------------------------------------" echo "[1/2] Medindo Tempo de Inicialização do Servidor CCSP e Memória RSS..." echo "-----------------------------------------------------------------------" STARTUP_SUM=0 RSS_SUM=0 RUNS=3 for i in $(seq 1 $RUNS); do echo -n " -> Execução $i de $RUNS: " OUT=$(./scripts/bench/bench_startup_rss.sh) S_MS=$(echo "$OUT" | grep "STARTUP_MS=" | cut -d'=' -f2) R_MB=$(echo "$OUT" | grep "RSS_MB=" | cut -d'=' -f2) echo "Startup = ${S_MS} ms | RSS = ${R_MB} MB" STARTUP_SUM=$((STARTUP_SUM + S_MS)) RSS_SUM=$(awk "BEGIN {print $RSS_SUM + $R_MB}") sleep 1 done AVG_STARTUP=$((STARTUP_SUM / RUNS)) AVG_RSS=$(awk "BEGIN {printf \"%.2f\", $RSS_SUM / $RUNS}") echo echo "=> Média de Inicialização CCSP: ${AVG_STARTUP} ms" echo "=> Média de Memória (RSS) em Idle: ${AVG_RSS} MB" echo # 2. Compilação e Execução do BenchmarkRunner (Certificados e PAdES) echo "-----------------------------------------------------------------------" echo "[2/2] Medindo Enumeração de Certificados e Latência PAdES..." echo "-----------------------------------------------------------------------" mkdir -p target/bench-classes "$JAVAC_BIN" -cp "$JAR_FILE" -d target/bench-classes scripts/bench/BenchmarkRunner.java "$JAVA_BIN" -cp "target/bench-classes:$JAR_FILE" scripts.bench.BenchmarkRunner