test(bench): add automated benchmark scripts and document baseline metrics

This commit is contained in:
Claudecio Martins
2026-10-20 15:47:38 -03:00
parent 71428cdaad
commit bac691aae1
4 changed files with 371 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
#!/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