Harald> yesterday I run a "virtex" binary from a DEC Unix machine on
Harald> Linux (this one used shared libs; after borrowing
Harald> /sbin/loader and /usr/shlib/libc.so for this test the binary
Harald> run fine) and compared it with the Red Hat binary TeXing
Harald> texbook.tex which is 494 pages plain TeX). this time I used
Harald> /usr/bin/time to get the CPU time and got
Harald> GCC binary : 37 seconds
Harald> DEC-cc & shared : 22 seconds
Harald> which is almost a ratio of 1.7 :-(
You have to be a little careful with making conclusions here. First,
the DEC libraries are generally well optimized. Libc (and dare I say
glibc...) has gotten a lot better, but if TeX happens to use a
particular function that hasn't been optimized for the Alpha yet, it
may easily explain the difference. It would be worthwhile to profile
TeX to find out whether this is the case (yes, I'll be working on
glibc soon, so you'll be able to profile optimized binaries...).
A second caveat is that using a different library (and particularly a
shared library), you get a completely different layout of your code.
This is important since most caches are direct-mapped on Alpha
systems. The only exception to this rule is the second-level cache in
the EV5, which is 3-way set associative. If TeX happens to have a few
tight loops that, in the Linux libc case, are unlucky enough to thrash
in the i-cache, then this again could easily explain the difference.
--david