diff --git a/bilibili.sh b/bilibili.sh index 9319ed5..b89b844 100644 --- a/bilibili.sh +++ b/bilibili.sh @@ -2,13 +2,20 @@ 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 -for i in $(seq 1 10); do +for i in $(seq 1 12); do # record data background echo 3 > /proc/sys/vm/drop_caches simpleperf stat -e dTLB-load-misses,iTLB-load-misses,page-faults --app tv.danmaku.bili > result 2>&1 & echo "start biliblii on your phone" - read tmp + 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 diff --git a/perf_test.sh b/perf_test.sh index b017dd1..f3b829d 100644 --- a/perf_test.sh +++ b/perf_test.sh @@ -2,8 +2,9 @@ echo > test.csv for dir in /sys/kernel/mm/transparent_hugepage/hugepages-*; do echo $dir $(cat $dir/enabled) >> test.csv done +echo pagefaults,dtlbmiss,itlbmiss,swpoutbad,swpinbad >> test.csv -for i in $(seq 1 100); do +for i in $(seq 1 10); do echo $i echo 3 > /proc/sys/vm/drop_caches diff --git a/toutiao.sh b/toutiao.sh new file mode 100644 index 0000000..dc2eee7 --- /dev/null +++ b/toutiao.sh @@ -0,0 +1,44 @@ +echo > csv_toutiao.csv +for dir in /sys/kernel/mm/transparent_hugepage/hugepages-*; do + echo $dir $(cat $dir/enabled) >> csv_toutiao.csv +done +echo "dtlbmiss,itlbmiss,pagefault" >> csv_toutiao.csv + +for i in $(seq 1 12); do + # record data background + echo 3 > /proc/sys/vm/drop_caches + simpleperf stat -e dTLB-load-misses,iTLB-load-misses,page-faults --app com.ss.android.ugc.aweme > result 2>&1 & + echo "start toutiao on your phone" + #read tmp + + while true; do + if [ $(ps -ef | grep -v simpleperf | grep -c com.ss.android.article.news) -gt 1 ]; then + break + else + echo . + fi + done + for j in $(seq 1 5); do + echo $j + sleep 1 + done + echo "killing toutiao" + + for pid in `ps -ef | grep com.ss.android.article.news | 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_toutiao.csv +done diff --git a/wangzhe.sh b/wangzhe.sh new file mode 100644 index 0000000..20048d3 --- /dev/null +++ b/wangzhe.sh @@ -0,0 +1,44 @@ +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 + +for i in $(seq 1 12); do + # record data background + echo 3 > /proc/sys/vm/drop_caches + 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.ss.android.article.news) -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