Linaro Toolchain for Android Benchmarking

NOTE: unofficial

Reference Benchmark (March, 2011)

Environment:

  • SoC: TI OMAP3430; ARM Cortex-A8; 600MHz
  • Memory: 256 MB
  • Android 2.2

Configurations:

  • arm-eabi-4.4.0 (Android 2.2)
  • arm-eabi-4.5.2 (Linaro 2011.03-0)

Comparisons:

  • skia (only ARGB8888; 15 rounds)

Bench Item

Android

Linaro

Linaro + Graphite

Linaro + FDO

decode_4444_(null)

0.00 ms

0.07 ms

0.07 ms

0.00 ms

decode_565_(null)

0.07 ms

0.00 ms

0.00 ms

0.07 ms

decode_8888_(null)

0.00 ms

0.00 ms

0.00 ms

0.00 ms

repeatTile_index8

333.60 ms

339.40 ms

315.53 ms

351.40 ms

repeatTile_4444

373.80 ms

374.73 ms

378.47 ms

401.73 ms

repeatTile_565

237.40 ms

232.73 ms

198.07 ms

198.60 ms

repeatTile_8888

331.73 ms

343.40 ms

317.80 ms

360.33 ms

bitmap_index8

251.53 ms

246.93 ms

224.53 ms

224.07 ms

bitmap_index8_A

432.20 ms

409.87 ms

401.13 ms

431.40 ms

bitmap_4444

137.80 ms

137.93 ms

110.67 ms

107.60 ms

bitmap_4444_A

299.67 ms

296.80 ms

274.87 ms

274.33 ms

bitmap_565

379.27 ms

359.87 ms

327.47 ms

328.47 ms

bitmap_8888

100.93 ms

100.33 ms

95.07 ms

103.87 ms

bitmap_8888_A

242.13 ms

239.67 ms

234.67 ms

272.13 ms

polygon

408.67 ms

393.87 ms

383.80 ms

405.73 ms

lines

203.00 ms

124.47 ms

120.93 ms

114.00 ms

points

48.73 ms

45.67 ms

42.73 ms

36.47 ms

rrects3

59.47 ms

59.27 ms

55.27 ms

52.13 ms

rrects1

138.87 ms

135.07 ms

129.27 ms

120.87 ms

ovals3

56.13 ms

59.00 ms

56.47 ms

53.60 ms

ovals1

153.93 ms

150.07 ms

146.80 ms

136.93 ms

rects3

7.13 ms

6.47 ms

10.13 ms

7.13 ms

rects1

33.13 ms

33.60 ms

46.53 ms

31.67 ms

Total

274.03 sec

266.24 sec

244.61 sec

251.02 sec

NOTE: enable GCC Graphite optimizations:

$ ../scripts/bench.py --action=build --toolchain=/tmp/android-toolchain-eabi \
                      --add_cflags="-floop-interchange -floop-strip-mine -floop-block"

NOTE: enable FDO build:

$ ../scripts/bench.py --action=build-fdo --toolchain=/tmp/android-toolchain-eabi
  • python (average time)

Bench Item

Android

Linaro

BuiltinFunctionCalls

4886 ms

4344 ms

BuiltinMethodLookup

980 ms

1425 ms

CompareFloats

800 ms

1280 ms

CompareFloatsIntegers

811 ms

1120 ms

CompareIntegers

774 ms

714 ms

CompareInternedStrings

870 ms

786 ms

CompareLongs

708 ms

653 ms

CompareStrings

714 ms

665 ms

CompareUnicode

817 ms

752 ms

ComplexPythonFunctionCalls

5309 ms

4691 ms

ConcatStrings

1530 ms

1822 ms

ConcatUnicode

1469 ms

1783 ms

CreateInstances

8006 ms

6918 ms

CreateNewInstances

6873 ms

5623 ms

CreateStringsWithConcat

1446 ms

1513 ms

CreateUnicodeWithConcat

2432 ms

2107 ms

DictCreation

628 ms

515 ms

DictWithFloatKeys

1097 ms

927 ms

DictWithIntegerKeys

779 ms

671 ms

DictWithStringKeys

703 ms

636 ms

ForLoops

693 ms

610 ms

IfThenElse

613 ms

568 ms

ListSlicing

1373 ms

1339 ms

NestedForLoops

839 ms

782 ms

NestedListComprehensions

2058 ms

1961 ms

NormalClassAttribute

837 ms

1271 ms

NormalInstanceAttribute

927 ms

1047 ms

PythonFunctionCalls

2211 ms

1749 ms

PythonMethodCalls

7237 ms

6942 ms

Recursion

2746 ms

2237 ms

SecondImport

9575 ms

7901 ms

SecondPackageImport

9690 ms

8018 ms

SecondSubmoduleImport

10568 ms

8739 ms

SimpleComplexArithmetic

1270 ms

1062 ms

SimpleDictManipulation

837 ms

745 ms

SimpleFloatArithmetic

965 ms

884 ms

SimpleIntFloatArithmetic

699 ms

626 ms

SimpleIntegerArithmetic

702 ms

624 ms

SimpleListComprehensions

1433 ms

1367 ms

SimpleListManipulation

1301 ms

886 ms

SimpleLongArithmetic

899 ms

740 ms

SmallLists

2598 ms

2601 ms

SmallTuples

4231 ms

3256 ms

SpecialClassAttribute

816 ms

1122 ms

SpecialInstanceAttribute

1168 ms

1375 ms

StringMappings

1995 ms

1596 ms

StringPredicates

5011 ms

2503 ms

StringSlicing

3545 ms

2721 ms

TryExcept

876 ms

776 ms

TryFinally

6321 ms

6727 ms

TryRaiseExcept

7140 ms

7117 ms

TupleSlicing

1560 ms

1640 ms

UnicodeMappings

1544 ms

1608 ms

UnicodePredicates

8904 ms

5615 ms

UnicodeSlicing

2265 ms

2526 ms

WithFinally

6784 ms

5742 ms

WithRaiseExcept

9084 ms

8344 ms

Total

162949 ms

144311 ms

  • gnugo

Android

Linaro

716.55 sec

661.25 sec

  • mpeg4 (derived from FFmpeg)

Bench Item

Android

Linaro

Linaro + LTO

Pass 1

35.656 sec

31.555 sec

30.750 sec

Pass 2

190.938 sec

174.805 sec

179.156 sec

Total

423.44 sec

402.67 sec

406.84 sec

NOTE: enable GCC LTO (Link Time Optimization):

../scripts/bench.py --action=build --toolchain=/tmp/android-toolchain-eabi \
                    --add_cflags="-flto -user-linker-plugin"
  • gcstone (derived from Dalvik)

Bench Item

Android

Linaro

Array Alloc Time

167

169

Array GC Time

54

55

List Alloc Time

8089

8109

List GC Time

986

982

Total

10.46 sec

9.97 sec

  • cximage

Android

Linaro

Linaro + Graphite + LTO

109.82 sec

102.0 sec

99.17 sec

Reference Benchmark (April, 2011)

Environment: Google Nexus S phone

  • SoC: Samsung V210; ARM Cortex-A8; 1 GHz
  • Android 2.3

Configurations:

  • arm-eabi-4.4.3 (Google Android 2.3)
  • arm-eabi-4.5.3 (Linaro 2011.04-0)

Comparisons:

  • skia (only ARGB8888; 15 rounds)

Bench Item

Google

Linaro + Graphite

decode_4444_(null)

0.00 ms

0.00 ms

decode_565_(null)

0.00 ms

0.00 ms

decode_8888_(null)

0.00 ms

0.00 ms

repeatTile_index8

205.20 ms

188.00 ms

repeatTile_4444

243.53 ms

224.20 ms

repeatTile_565

135.07 ms

113.73 ms

repeatTile_8888

203.73 ms

187.67 ms

bitmap_index8

88.87 ms

80.13 ms

bitmap_index8_A

197.87 ms

177.40 ms

bitmap_4444

58.53 ms

45.00 ms

bitmap_4444_A

140.80 ms

131.13 ms

bitmap_565

153.40 ms

130.73 ms

bitmap_8888

15.80 ms

15.40 ms

bitmap_8888_A

115.40 ms

107.73 ms

polygon

161.47 ms

154.20 ms

lines

46.27 ms

44.47 ms

points

11.67 ms

10.93 ms

rrects3

17.53 ms

18.20 ms

rrects1

57.93 ms

55.60 ms

ovals3

19.20 ms

18.40 ms

ovals1

67.00 ms

64.87 ms

rects3

2.07 ms

2.00 ms

rects1

15.47 ms

15.53 ms

Total

130.34 sec

118.35 sec

NOTE: enable GCC Graphite optimizations:

../scripts/bench.py \
    --action=build --toolchain=/tmp/android-toolchain-eabi \
    --add_cflags="-floop-interchange -floop-strip-mine -floop-block -ffast-math -funsafe-loop-optimizations"

JimHuang/Sandbox/LinaroToolchainAndroidBenchmarking (last modified 2011-04-27 18:15:32)