This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: benchmarking combreloc


Jakub,
    Thanks for the suggestion on how to disable combreloc in glibc.
I built a glibc with combreloc disabled and got the following
results for the t1 tutorial on Debian ppc sid with and without prelinking...

unprelinked:

howarth@bogus:~/tutorial/t1$ LD_DEBUG=statistics ./t1.unprelinked
01338:
01338:  runtime linker statistics:
01338:    total startup time in dynamic loader: 17486340 clock cycles
01338:              time needed for relocation: 13139203 clock cycles (75.1%)
01338:                   number of relocations: 32391
01338:        number of relocations from cache: 0
01338:             time needed to load objects: 567645 clock cycles (3.2%)

prelinked:

howarth@bogus:~/tutorial/t1$ LD_DEBUG=statistics ./t1.prelinked  
01388:
01388:  runtime linker statistics:
01388:    total startup time in dynamic loader: 133180 clock cycles
01388:              time needed for relocation: 57375 clock cycles (43.0%)
01388:                   number of relocations: 0
01388:        number of relocations from cache: 2555
01388:             time needed to load objects: 63798 clock cycles (47.9%)


which compares to the following with combreloc enabled in glibc....

unprelinked:

bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.unprelinked
14355:
14355:  runtime linker statistics:
14355:    total startup time in dynamic loader: 1978861 clock cycles
14355:              time needed for relocation: 1904007 clock cycles (96.2%)
14355:                   number of relocations: 9647
14355:        number of relocations from cache: 22744
14355:             time needed to load objects: 65247 clock cycles (3.2%)

prelinked:

bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.prelinked
14356:
14356:  runtime linker statistics:
14356:    total startup time in dynamic loader: 135185 clock cycles
14356:              time needed for relocation: 57254 clock cycles (42.3%)
14356:                   number of relocations: 0
14356:        number of relocations from cache: 2555
14356:             time needed to load objects: 67923 clock cycles (50.2%)

Thus combreloc reduces the total startup by 90%. Prelinking reduces the
total startup time an additional 95% on top of that. Thus the total load
time with both combreloc and prelinking is less than 1% of that with
neither feature. Interestingly the results without combreloc but with
prelinking are almost identical to that of combreloc and prelinking.
                         Jack

------------------------------------------------------------------------------
Jack W. Howarth, Ph.D.                                    231 Albert Sabin Way
NMR Facility Director                              Cincinnati, Ohio 45267-0524
Dept. of Molecular Genetics                              phone: (513) 558-4420
Univ. of Cincinnati College of Medicine                    fax: (513) 558-8474


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]