livecaption / scripts /soak.sh
Veronyka's picture
LiveCaption: legendas ao vivo e tradução locais para Mac (código-fonte, sem pesos)
f1e4744 verified
Raw History Blame Contribute Delete
1.14 kB
#!/bin/zsh
# Teste de resistência: alimenta o LiveCaption com tests/live_pt.f32 em tempo real por N segundos (padrão 900)
# e amostra CPU/RAM do app e do Ollama. Saída em <pasta de dados>/logs: metricas-*.jsonl (do app) e soak-ps-*.csv.
cd "$(dirname "$0")/.."
export LC_PROJECT="${LC_PROJECT:-$HOME/Library/Application Support/LiveCaption}"
mkdir -p "$LC_PROJECT/logs"
DUR=${1:-900}
STAMP=$(date +%Y%m%d-%H%M%S)
CSV="$LC_PROJECT/logs/soak-ps-$STAMP.csv"
echo "t_s,app_cpu,app_rss_mb,ollama_cpu,ollama_rss_mb,thermal" > "$CSV"
LC_ALL=C LC_LOG=1 LC_WAV=$PWD/tests/live_pt.f32 LC_DURATION=$DUR ./LiveCaption.app/Contents/MacOS/LiveCaption &
APP=$!
caffeinate -i -w $APP &
T0=$(date +%s)
sleep 20
while kill -0 $APP 2>/dev/null; do
A=$(LC_ALL=C ps -o %cpu=,rss= -p $APP | awk '{printf "%s,%.0f",$1,$2/1024}')
O=$(LC_ALL=C ps -axo %cpu=,rss=,command= | LC_ALL=C awk '/ollama runner|ollama serve/ && !/awk/ {c+=$1; r+=$2} END {printf "%.1f,%.0f",c,r/1024}')
TH=$(pmset -g therm 2>/dev/null | grep -i -E "CPU_Speed_Limit" | awk '{print $NF}')
echo "$(( $(date +%s) - T0 )),$A,$O,${TH:-100}" >> "$CSV"
sleep 30
done
echo "fim: $CSV"