diff options
author | Benoit Lamarche <benoitlamarche@google.com> | 2015-02-10 10:00:34 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-02-10 10:00:35 +0000 |
commit | 366e204530e8e72abaa18fde0daa11c7a327b405 (patch) | |
tree | 4c2e189c8ba291d636e9b29da63f9a89696f47c2 /dx/tests/131-perf/run | |
parent | b3ef71c036980c75656b151789c1c27a1a2d2bab (diff) | |
parent | dd140a22d90495045024334a91770acaad8e065e (diff) | |
download | android_dalvik-366e204530e8e72abaa18fde0daa11c7a327b405.tar.gz android_dalvik-366e204530e8e72abaa18fde0daa11c7a327b405.tar.bz2 android_dalvik-366e204530e8e72abaa18fde0daa11c7a327b405.zip |
Merge "Support --num-threads with --multi-dex (take 2)"
Diffstat (limited to 'dx/tests/131-perf/run')
-rw-r--r-- | dx/tests/131-perf/run | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/dx/tests/131-perf/run b/dx/tests/131-perf/run new file mode 100644 index 000000000..e57545c03 --- /dev/null +++ b/dx/tests/131-perf/run @@ -0,0 +1,88 @@ +#!/bin/bash +# +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Stop if something fails. +set -e + +# Write out classes + +${JAVAC} ClassGen.java + +mkdir src +mkdir classes + +# Heap size, min and max +MEM=4g + +MULTIDEX="--multi-dex" +THREADS="--num-threads=5" + +# Extra statistics, use to calibrate test. +#EXTRA="--profile-concurrency" + +# Test smaller dex files +#EXTRA="--set-max-idx-number=20000" + +# Test GC options +#GC="-JXX:+UseConcMarkSweepGC" + +# Limit HW threads +#TASKSET="taskset 0x00000fff + +# Number of classes, initial +TEST_SIZE=1000 + +# number of classes, max +LIMIT=1000 + +# Number of additional classes per test +STEP=100 + +# Number of fields per classes +FIELDS=4 + +# Number of methods per class +METHODS=6 + + +first=1; +while [ $TEST_SIZE -le $LIMIT ]; do + rm -rf out + mkdir out + + sleep 2 + java -classpath . ClassGen $first $TEST_SIZE $FIELDS $METHODS + first=`expr $TEST_SIZE + 1` + + ${JAVAC} -d classes `find src -name '*.java'` + (cd classes; jar cf ../x.jar `find . -name '*.class'`) + sleep 3 + + start=`date +'%s%N'` + $TASKSET dx -JXmx$MEM -JXms$MEM $GC --dex $EXTRA --no-optimize $MULTIDEX $THREADS --output=out x.jar + end=`date +'%s%N'` + nsec=`expr $end - $start` + msec=`expr $nsec / 1000000` + echo "Classes/msec $TEST_SIZE $msec" + + TEST_SIZE=`expr $TEST_SIZE + $STEP` +done + +if [ "$?" = "1" ]; then + echo "Yay!" +else + cat unit-out.txt +fi |