This is the mail archive of the guile@cygnus.com mailing list for the Guile project.


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

Well, that's interesting.



I always used to feel like Dr. Science does: "I don't perform
experiments --- data just *occur* to me."

Now that I've actually got some simple benchmarking stuff, I'm
beginning to appreciate why people are always posting such wildly
varying benchmark results, even when accounting for well-known issues
like the debugging support.

For example, I've commented out benchmarks, and seen total GC time for
the remaining suite increase by an order of magnitude.

As another example, yesterday I fixed the bug in GDB that makes it
annoying to step into functions in shared libraries (you end up in
strcmp, or whatever).  So I figured I'd rebuild a dynamically linked
Guile executable, and try things out.

The first set of benchmarks below were run with a dynamically linked
Guile, the second with a statically linked Guile.  I can switch back
and forth between the two sets of results just by passing or omitting
the -static flag to the libtool command that builds the Guile
executable.  The run times increase by 15 to 30%.

Maybe that's a well-known effect of dynamic linking, but I wasn't
aware of it until now.

I can think of explanations for all these effects, but in light of
these experiences, I'm growing dissatisfied with guessing about such
things.




; Opened log file, Wed  9 Jun 11:52:06
(start-log 928947126)
; System: Linux savonarola.red-bean.com 2.0.36  i586 
(system-uname #("Linux" "savonarola.red-bean.com" "2.0.36" "" "i586"))
; Benchmark lib version: 4
(benchmark-library-version 4)
; Benchmark: ports revision 4
("ports" 4)
; read-sexp              10 passes    2.32s user    0.60s gc    0.04s sys
(read-sexp 10 (60 292 4 0 0))
; write-sexp            100 passes    7.74s user    0.00s gc    0.01s sys
(write-sexp 100 (0 774 1 0 0))
; read-lines            100 passes    4.75s user    1.64s gc    0.13s sys
(read-lines 100 (164 639 13 0 0))
; write-lines           500 passes    8.71s user    1.18s gc    0.00s sys
(write-lines 500 (118 989 0 0 0))


;;; Statically linked Guile.

; Opened log file, Wed  9 Jun 12:00:01
(start-log 928947601)
; System: Linux savonarola.red-bean.com 2.0.36  i586 
(system-uname #("Linux" "savonarola.red-bean.com" "2.0.36" "" "i586"))
; Benchmark lib version: 4
(benchmark-library-version 4)
; Benchmark: ports revision 4
("ports" 4)
; read-sexp              10 passes    1.78s user    0.54s gc    0.08s sys
(read-sexp 10 (54 232 8 0 0))
; write-sexp            100 passes    6.59s user    0.00s gc    0.02s sys
(write-sexp 100 (0 659 2 0 0))
; read-lines            100 passes    3.91s user    1.46s gc    0.09s sys
(read-lines 100 (146 537 9 0 0))
; write-lines           500 passes    6.93s user    1.06s gc    0.04s sys
(write-lines 500 (106 799 4 0 0))

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