summaryrefslogtreecommitdiff
path: root/boot-image-measurement.sh
blob: a17aabe7f81547b71693441e3e337fd4acf89012 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/bin/bash
set -e

. $PWD/setup-android.sh

source build/envsetup.sh
lunch aosp_arm64-eng
for target in "ARM" "x86" "mips"
do
if [[ $target = "ARM" ]]; then
lunch aosp_arm64-eng
out_dir=generic_arm64
elif [[ $target = "mips" ]]; then
lunch aosp_mips64-eng
out_dir=generic_mips64
else
lunch aosp_x86_64-eng
out_dir=generic_x86_64
fi

make -j$jcpu_count dex2oatd dex2oat
for mode in Quick Optimizing
do
sed -i "s/\$(COMPILED_CLASSES_FLAGS)/\$(COMPILED_CLASSES_FLAGS) --compiler-backend=$mode/g" build/core/dex_preopt_libart_boot.mk
for arch in 32 64
do
if [[ $arch = 64 && $target = "ARM" ]]; then
libdir="arm64"
elif [[ $arch = 32 && $target = "ARM" ]]; then
libdir="arm"
elif [[ $arch = 64 && $target = "mips" ]]; then
libdir="mips64"
if [[ $mode = Quick ]]; then
continue
fi
elif [[ $arch = 32 && $target = "mips" ]]; then
libdir="mips"
if [[ $mode = Optimizing ]]; then
continue
fi
elif [[ $arch = 64 && $target = "x86" ]]; then
libdir="x86_64"
else
libdir="x86"
fi
oat_time=0
rm -rf out/target/product/$out_dir/system/framework/$libdir/boot.art rm -rf out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/
make  -j$jcpu_count $flags out/target/product/$out_dir/system/framework/$libdir/boot.art 2>&1 | tee logs.txt
avg_oatd_time=`grep -rni "dex2oat took" logs.txt | sed -e "s/.*took //g" | sed -e "s/s.*$//g"`
cat logs.txt  | grep "dex2oatd --runtime-arg" > cmd.txt
sed -i "s/--multi-image//g" cmd.txt
sed -i "s/.*out\/host\/linux-x86\/bin\/dex2oatd/out\/host\/linux-x86\/bin\/dex2oat -j1/g" cmd.txt
for i in 1 2 3 4 5 6 7 8 9 10
do
rm -rf out/target/product/$out_dir/dex_bootjars/system/framework/$libdir/boot.oat
`cat cmd.txt` 2>&1 | tee logs.txt
curr_oat_time=`grep -rni "dex2oat took" logs.txt | sed -e "s/.*took //g" | sed -e "s/s.*$//g"`
oat_time=`echo "$oat_time + $curr_oat_time" | bc`
done
export avg_oat_time=`echo "$oat_time / 10" | bc -l`
export avg_oatd_time_${target}_${arch}_${mode}=avg_oatd_time
export avg_oat_time_${target}_${arch}_${mode}=avg_oat_time
export boot_oat_size=`ls -lt out/target/product/$out_dir/system/framework/$libdir/boot.oat | cut -d" " -f5`
size -A -d  out/target/product/$out_dir/system/framework/$libdir/boot.oat > $WORKSPACE/boot_oat_metadata_${target}_${arch}_${mode}.txt
echo "##########################################################"
echo "##########################################################"
echo "##########################################################"
echo "##############avg_oatd_time_${target}_${arch}_${mode}=${avg_oatd_time}#############################"
echo "##############avg_oat_time_${target}_${arch}_${mode}=${avg_oat_time}#############################"
echo "##########################################################"
echo "##########################################################"
echo "##########################################################"
echo "##########################################################"
echo "##########################################################"
echo "YVALUE=$avg_oatd_time" > $WORKSPACE/avg_oatd_time_${target}_${arch}_${mode}.txt
echo "YVALUE=$avg_oat_time" > $WORKSPACE/avg_oat_time_${target}_${arch}_${mode}.txt
echo "YVALUE=$boot_oat_size" > $WORKSPACE/boot_oat_size_${target}_${arch}_${mode}.txt
echo "${target}_${arch}_${mode},${avg_oatd_time}" >> $WORKSPACE/avg_oatd_time.csv
echo "${target}_${arch}_${mode},${avg_oat_time}" >> $WORKSPACE/avg_oat_time.csv
echo "${target}_${arch}_${mode},${boot_oat_size}" >> $WORKSPACE/boot_oat_size.csv
done
cd build/core
git reset --hard
cd -
done
done

echo "====== avg_oatd_time ======"
cat $WORKSPACE/avg_oatd_time.csv
echo "====== avg_oat_time ======"
cat $WORKSPACE/avg_oat_time.csv
echo "====== boot_oat_size ======"
cat $WORKSPACE/boot_oat_size.csv

sudo apt-get update
sudo apt-get install -y python-virtualenv

git clone https://git.linaro.org/people/milosz.wasilewski/art-db-client.git/ uploadrepository
virtualenv venv
source venv/bin/activate
pip install -r uploadrepository/requirements.txt

python uploadrepository/uploadbenchmark.py --token $DB_TOKEN --url  https://art-reports.linaro.org/api/ --manifest $WORKSPACE/pinned-manifest.xml --result-file $WORKSPACE/avg_oatd_time.csv  --branch $MANIFEST_BRANCH --board host --boardconfig n/a --build-url $BUILD_URL --benchmark avg_oatd_time
python uploadrepository/uploadbenchmark.py --token $DB_TOKEN --url  https://art-reports.linaro.org/api/ --manifest $WORKSPACE/pinned-manifest.xml --result-file $WORKSPACE/avg_oat_time.csv  --branch $MANIFEST_BRANCH --board host --boardconfig n/a --build-url $BUILD_URL --benchmark avg_oat_time
python uploadrepository/uploadbenchmark.py --token $DB_TOKEN --url  https://art-reports.linaro.org/api/ --manifest $WORKSPACE/pinned-manifest.xml --result-file $WORKSPACE/boot_oat_size.csv  --branch $MANIFEST_BRANCH --board host --boardconfig n/a --build-url $BUILD_URL --benchmark boot_oat_size

deactivate
rm -rf venv
rm -rf uploadrepository

ccache -s