Patch for Review: Build all libjava .class files at once (Updated Again)

Bryce McKinlay bryce@mckinlay.net.nz
Thu Sep 18 09:35:00 GMT 2003


On Wednesday, Sep 17, 2003, at 16:54 Pacific/Auckland, Bryce McKinlay 
wrote:

> We already eliminates duplicate Utf8's if the linker supports it (ie 
> newish GNU binutils). Actually, I'm suspicious that the string merging 
> is partly responsible for the slow link time! If it does account for a 
> large proportion of the link time we should investigate alternative 
> means for the class metadata under the bc-abi.

I did a bit of profiling tonight and it looks like this is indeed the 
case. Linking libgcj.so, ld spends over 96% of its time in the 
following functions, all from bfd/merge.c. I'm wondering if a hashtable 
is the right data structure here.

# opreport --symbols /home/bryce/gcc/i686-pc-linux-gnu/bin/ld
CPU: Athlon, speed 1544.83 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a 
unit mask of 0x00 (No unit mask) count 10000
vma      samples  %           symbol name
080a8c00 1264075  45.2845     last_eq
080b5b30 1010299  36.1932     htab_find_slot_with_hash
080a8b30 237515    8.5088     last4_eq
080a8d30 157330    5.6362     sec_merge_hash_lookup
0808c240 74944     2.6848     last4_eq
...

Regards

Bryce




More information about the Java-patches mailing list