From ed83c4d77196ddf777be3babb63cfa07ae1be9e0 Mon Sep 17 00:00:00 2001 From: andreastaliad Date: Fri, 22 May 2026 20:43:21 +0300 Subject: [PATCH] maybe fixed cpu fork logging --- run_all_experiments.sh | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/run_all_experiments.sh b/run_all_experiments.sh index 4dd603e..399da2c 100644 --- a/run_all_experiments.sh +++ b/run_all_experiments.sh @@ -78,14 +78,13 @@ sample_process_csv() { nlwp=$(awk '/^Threads:/ {print $2}' "/proc/$pid/status") fi - local cur_ticks dt dc cpu - cur_ticks=$prev_ticks - if [ -r "/proc/$pid/stat" ]; then - cur_ticks=$(awk '{print $14 + $15}' "/proc/$pid/stat") + # Use ps directly to avoid zero deltas for very short-lived processes. + local cpu + if command -v ps >/dev/null 2>&1; then + cpu=$(ps -o %cpu= -p "$pid" 2>/dev/null | awk '{print $1}' || true) + else + cpu=0.00 fi - dt=$(awk -v a="$prev_uptime" -v b="$now_uptime" 'BEGIN{print b-a}') - dc=$(awk -v a="$prev_ticks" -v b="$cur_ticks" 'BEGIN{print b-a}') - cpu=$(awk -v dt="$dt" -v dc="$dc" -v hz="$clk_tck" 'BEGIN{ if (dt<=0) printf "0.00"; else printf "%.2f", (100.0*dc)/(dt*hz) }') printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n" \ "$(date -Iseconds)" "$elapsed_s" "$load1" "$load5" "$load15" \ @@ -94,7 +93,6 @@ sample_process_csv() { >> "$csv" prev_uptime=$now_uptime - prev_ticks=$cur_ticks sleep 1 done }