echo > csv_bilibili.csv for dir in /sys/kernel/mm/transparent_hugepage/hugepages-*; do echo $dir $(cat $dir/enabled) >> csv_bilibili.csv done echo "dtlbmiss,itlbmiss,pagefault" >> csv_bilibili.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 tv.danmaku.bili > result 2>&1 & echo "start biliblii on your phone" while true; do if [ $(ps -ef | grep -v simpleperf | grep -c tv.danmaku.bili) -gt 1 ]; then break else echo . fi done for j in $(seq 1 5); do echo $j sleep 1 done echo "killing biliblii" for pid in `ps -ef | grep tv.danmaku.bili | 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_bilibili.csv done