summaryrefslogtreecommitdiff
path: root/boot-image-measurement.sh
blob: 87138ff1ced4fd95ae7673333bca70d45aa8e390 (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
#!/bin/bash
. $PWD/setup-android.sh

export flags="-B NATIVE_COVERAGE=true ART_COVERAGE=true"
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/.*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
done
cd build/core
git reset --hard
cd -
done
done

ccache -s