memory_test/wangzhe.sh

45 lines
1.2 KiB
Bash

echo > csv_wangzhe.csv
for dir in /sys/kernel/mm/transparent_hugepage/hugepages-*; do
echo $dir $(cat $dir/enabled) >> csv_wangzhe.csv
done
echo "dtlbmiss,itlbmiss,pagefault" >> csv_wangzhe.csv
echo 3 > /proc/sys/vm/drop_caches
for i in $(seq 1 12); do
# record data background
simpleperf stat -e dTLB-load-misses,iTLB-load-misses,page-faults --app com.tencent.tmgp.sgame > result 2>&1 &
echo "start wangzhe on your phone"
#read tmp
while true; do
if [ $(ps -ef | grep -v simpleperf | grep -c com.tencent.tmgp.sgame) -gt 1 ]; then
break
else
echo .
fi
done
for j in $(seq 1 5); do
echo $j
sleep 1
done
echo "killing wangzhe"
for pid in `ps -ef | grep com.tencent.tmgp.sgame | grep -v simpleperf | grep -v grep| awk '{print $2}'`; do kill $pid; done
killall simpleperf
while true; do
if [ $(cat result | grep -c "dTLB-load-misses") -gt 0 ]; then
break
fi
sleep 1
echo '...'
done
dtlbmiss=$(cat result | grep dTLB-load-misses | awk '{print $1}' | sed 's/,//g')
itlbmiss=$(cat result | grep iTLB-load-misses | awk '{print $1}' | sed 's/,//g')
pagefault=$(cat result | grep page-faults | awk '{print $1}' | sed 's/,//g')
echo "$dtlbmiss,$itlbmiss,$pagefault"
echo "$dtlbmiss,$itlbmiss,$pagefault" >> csv_wangzhe.csv
done