[abc] compile times

From: Oege de Moor <Oege.de.Moor@comlab.ox.ac.uk>
Date: Mon Dec 13 2004 - 22:12:28 GMT

For the revision of the CC paper, I've been taking some measurements for
compile times. On the benches, it looks not too bad:

  1.1-4.4 times slower than ajc when using abc -O0
  1.4-6.5 times slower than ajc when using abc

The 6.5 is in fact for LoD, which appears acceptable if you see the
speedup in the generated code.

However, I also tried compiling abc itself:

  javac 5.0secs
  ajc 5.4secs
  abc 374.9secs
  abc -O0 312.3secs

Note that this is pure Java - no aspects in sight. A breakdown reveals
there is no obvious single culptrit:

[ 00.249% ] Init. of Soot: 862
[ 00.009% ] Loading Jars: 32
[ 00.074% ] Create polyglot compiler: 258
[ 22.201% ] Polyglot phases: 76964
[ 01.351% ] Initial Soot resolving: 4682
[ 00.000% ] Soot resolving: 0
[ 00.000% ] Aspect inheritance: 0
[ 00.000% ] Declare Parents: 1
[ 00.006% ] Intertype Adjuster: 21
[ 26.565% ] Jimplification: 92092
[ 00.000% ] Fix up constructor calls: 1
[ 00.142% ] Update pattern matcher: 493
[ 00.078% ] Weave Initializers: 271
[ 00.000% ] Load shadow types: 0
[ 03.974% ] Compute advice lists: 13775
[ 00.003% ] Add aspect code: 11
[ 09.000% ] Weaving advice: 31199
[ 00.081% ] Exceptions check: 281
[ 27.753% ] Soot Packs: 96208
[ 08.513% ] Soot Writing Output: 29512

It does appear somewhat strange that advice weaving is a significant
factor when there are no aspects, but that's definitely not the
main cause.

Does someone else have time to look into this? The obvious suspect
is the generated lexer/parser code, which may reveal non-linear
algorithms in polyglot, the jimplifier and soot packs alike...

We cannot submit a paper with such results to ECOOP...

-Oege
Received on Mon Dec 13 22:12:30 2004

This archive was generated by hypermail 2.1.8 : Wed Dec 15 2004 - 02:10:04 GMT