36 lines
1.0 KiB
Bash
36 lines
1.0 KiB
Bash
|
|
echo > csv_bilibili.csv
|
||
|
|
for dir in /sys/kernel/mm/transparent_hugepage/hugepages-*; do
|
||
|
|
echo $dir $(cat $dir/enabled) >> csv_bilibili.csv
|
||
|
|
done
|
||
|
|
|
||
|
|
for i in $(seq 1 10); 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
|
||
|
|
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
|