1、编写统计每个CPU核的占用率脚本
cpu_monitor.sh
#!/system/bin/sh
# 保存为 /data/local/tmp/cpu_monitor.sh
echo "=== CPU Usage per Core (Press Ctrl+C to stop) ==="
echo "Updating every 1 second..."
# 初始化:先写一个空的 stat1
echo "" > /data/local/tmp/stat1
# 第一次读取 /proc/stat
cat /proc/stat > /data/local/tmp/stat2
# 移动 stat2 到 stat1,作为初始值
mv /data/local/tmp/stat2 /data/local/tmp/stat1
while true; do
sleep 1
# 获取当前 CPU 状态
cat /proc/stat > /data/local/tmp/stat2
# 使用 awk 计算每核使用率
awk '
# 第一个文件:stat1(上次)
NR == FNR {
if ($1 ~ /^cpu[0-9]+$/) {
core = substr($1, 4) # 提取数字,如 cpu0 -> 0
# 累加所有时间
total = 0
for (i = 2; i <= NF; i++) total += $i
idle[core] = $5
total_time[core] = total
}
next
}
# 第二个文件:stat2(当前)
$1 ~ /^cpu[0-9]+$/ {
core = substr($1, 4)
total = 0
for (i = 2; i <= NF; i++) total += $i
idle_now = $5
# 计算差值
total_diff = total - total_time[core]
idle_diff = idle_now - idle[core]
# 防止除以 0
if (total_diff > 0) {
usage = 100 - (idle_diff * 100 / total_diff)
# 限制在 0-100% 之间
if (usage < 0) usage = 0
if (usage >

1448

被折叠的 条评论
为什么被折叠?



