From c6354d912739b7b1ee8c835d51113dffcd82a8dd Mon Sep 17 00:00:00 2001 From: Wenchao Hao Date: Thu, 15 May 2025 14:19:59 +0800 Subject: [PATCH] update Signed-off-by: Wenchao Hao --- cold_start_app.sh | 111 +++++++--------------------------------------- run.sh | 43 +++++++++++------- 2 files changed, 42 insertions(+), 112 deletions(-) diff --git a/cold_start_app.sh b/cold_start_app.sh index c960382..4a2b3ff 100755 --- a/cold_start_app.sh +++ b/cold_start_app.sh @@ -6,105 +6,24 @@ prev_alloc=$(adb shell cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/st prev_alloc_fallback=$(adb shell cat /sys/kernel/mm/transparent_hugepage/hugepages-64kB/stats/anon_fault_fallback) adb shell "simpleperf stat -e dTLB-loads,dTLB-load-misses,iTLB-loads,iTLB-load-misses,page-faults,raw-stall-backend-mem --app $app --duration 3 -o /data/local/tmp/simpleperf-"$app"-"$round".txt" & +adb shell "perfetto -c /data/misc/perfetto-configs/perfconf.txt --txt -o /data/misc/perfetto-traces/trace-"$app"-"$round".ptrace" & -echo "即将抓的perfetto, 请1秒后启动应用 $app" +perfetto_pid=$! +echo perfetto_pid is $perfetto_pid -adb shell perfetto -c - --txt -o /data/misc/perfetto-traces/trace-"$app"-"$round".ptrace \ -< $dir/ratio-"$app"-"$round".txt +sleep 3 + adb pull /data/misc/perfetto-traces/trace-"$app"-"$round".ptrace $dir/ adb pull /data/local/tmp/simpleperf-"$app"-"$round".txt $dir/ diff --git a/run.sh b/run.sh index 1f6973e..4ef7825 100755 --- a/run.sh +++ b/run.sh @@ -1,35 +1,41 @@ #$dirput: round app start_time start_type rss pss ratio pagefault itlbmiss dtlbmiss cpustalled -dir=$(/usr/bin/date +%Y-%m-%d-%H-%M-%S) +adb push perfconf.txt /data/misc/perfetto-configs + +dir=$(/usr/bin/date +%Y-%m%d-%H%M) mkdir $dir +mkdir $dir/mminfo echo "round app start_type start_time inc_ratio inc_total rss pss pagefaults itlbmiss dtlbmiss cpustall" > $dir/result for round in $(seq 1 2); do for app in `cat applist`; do + sleep 10 echo "开始测试应用 $app" - read -p "输入q退出, 输入其他任意内容继续" cmd + # read -p "输入q退出, 输入其他任意内容继续" cmd - if [ "$cmd" == "q" ]; then - exit - fi + #if [ "$cmd" == "q" ]; then + # exit + #fi # 抓内存相关信息 - adb shell free -h > $dir/before_free-$app-$round - adb shell cat /proc/meminfo > $dir/before_meminfo-$app-$round - adb shell cat /proc/zoneinfo > $dir/before_zoneinfo-$app-$round - adb shell cat /proc/buddyinfo > $dir/before_buddyinfo-$app-$round - adb shell cat /proc/pagetypeinfo > $dir/before_pagetypeinfo-$app-$round - adb shell cat /proc/vmstat > $dir/before_vmstat-$app-$round + adb shell free -h > $dir/mminfo/before_free-$app-$round + adb shell cat /proc/meminfo > $dir/mminfo/before_meminfo-$app-$round + adb shell cat /proc/zoneinfo > $dir/mminfo/before_zoneinfo-$app-$round + adb shell cat /proc/buddyinfo > $dir/mminfo/before_buddyinfo-$app-$round + adb shell cat /proc/pagetypeinfo > $dir/mminfo/before_pagetypeinfo-$app-$round + adb shell cat /proc/vmstat > $dir/mminfo/before_vmstat-$app-$round ./cold_start_app.sh $app $round $dir + + # 回到桌面,应用退后台 adb shell input keyevent 3 - adb shell free -h > $dir/after_free-$app-$round - adb shell cat /proc/meminfo > $dir/after_meminfo-$app-$round - adb shell cat /proc/zoneinfo > $dir/after_zoneinfo-$app-$round - adb shell cat /proc/buddyinfo > $dir/after_buddyinfo-$app-$round - adb shell cat /proc/pagetypeinfo > $dir/after_pagetypeinfo-$app-$round - adb shell cat /proc/vmstat > $dir/after_vmstat-$app-$round + adb shell free -h > $dir/mminfo/after_free-$app-$round + adb shell cat /proc/meminfo > $dir/mminfo/after_meminfo-$app-$round + adb shell cat /proc/zoneinfo > $dir/mminfo/after_zoneinfo-$app-$round + adb shell cat /proc/buddyinfo > $dir/mminfo/after_buddyinfo-$app-$round + adb shell cat /proc/pagetypeinfo > $dir/mminfo/after_pagetypeinfo-$app-$round + adb shell cat /proc/vmstat > $dir/mminfo/after_vmstat-$app-$round # 计算启动耗时 python3 handle_perfetto.py $dir/trace-"$app"-"$round".ptrace mm > tmp.txt @@ -41,6 +47,9 @@ for round in $(seq 1 2); do start_time=$(cat tmp.txt | awk '{print $1}') start_type=$(cat tmp.txt | awk '{print $2}') fi + + start_time=$((start_time/10000)) + start_time=$(echo "scale=2; $start_time / 100" | bc) # 计算PSS RSS if [ $(cat $dir/meminfo-"$app"-"$round".txt | grep "MEMINFO in pid" -c) -ne 1 ]; then