benchmarking combreloc
Jack Howarth
howarth@nitro.msbb.uc.edu
Tue Oct 30 22:11:00 GMT 2001
Hello,
Has anyone actually benchmarked the effect of combreloc on
loading programs built with a -z combreloc enabled binutils and
a glibc built against that as well. I have done some simple benchmarks
on Debian sid ppc comparing the effects of Jakub's prelinker with
that obtained with and without combreloc. This was done by using
the -Wl,-znocombreloc linker flag when linking the t1 tutorial to
attempt to disable combreloc in a program.
Below are the observations...
bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.nocombreloc.unprelinked
14345:
14345: runtime linker statistics:
14345: total startup time in dynamic loader: 1955297 clock cycles
14345: time needed for relocation: 1882018 clock cycles (96.2%)
14345: number of relocations: 9647
14345: number of relocations from cache: 22744
14345: time needed to load objects: 64002 clock cycles (3.2%)
bogus:/home/howarth/tutorial/t1# LD_DEBUG=statistics ./t1.nocombreloc.prelinked
14354:
14354: runtime linker statistics:
14354: total startup time in dynamic loader: 130297 clock cycles
14354: time needed for relocation: 56675 clock cycles (43.4%)
14354: number of relocations: 0
14354: number of relocations from cache: 2555
14354: time needed to load objects: 63553 clock cycles (48.7%)
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%)
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%)
While I clearly see an improvement with prelinking (this is using the
current glibc cvs plus Jakub's most recent 20011010 prelink glibc.patch)
I don't see any measureable effect from combreloc. Am I missing something
really obvious here? Thanks in advance for any clarifications.
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
More information about the Libc-alpha
mailing list