44 lines
1.2 KiB
Bash
44 lines
1.2 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
|
|
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
|