Hi, Andy Wingo <wi...@pobox.com> skribis:
> Hi! > > On Mon 27 Feb 2012 16:57, l...@gnu.org (Ludovic Courtès) writes: > >>>> How does this change influence ‘benchmark-suite/benchmarks/ports.bm’? >>> >>> Dunno, that wasn't my benchmark. It makes the web server go faster >>> (e.g. guile examples/web/debug-sxml.scm). >> >> Can you check with that benchmark? I think it’s important to have >> concrete figures when doing such a change, to make sure the >> performance/maintenance cost ratio is good. > > Before: > > wingo@badger:~/src/guile-master$ ./benchmark-guile ports.bm > Benchmarking /home/wingo/src/guile-master/meta/guile ... ports.bm > with GUILE_LOAD_PATH=/home/wingo/src/guile-master/benchmark-suite > ;; running guile version 2.1.0.43-4813a-dirty > ;; calibrating the benchmarking framework... > ;; framework time per iteration: 3.81469669342041e-8 > ("ports.bm: peek-char: latin-1 port" 700000 user 0.08 benchmark > 0.0532971231460571 bench/interp 0.0532971231460571 gc 0.0) > ("ports.bm: peek-char: utf-8 port, ascii character" 700000 user 0.05 > benchmark 0.0232971231460571 bench/interp 0.0232971231460571 gc 0.0) > ("ports.bm: peek-char: utf-8 port, Korean character" 700000 user 0.08 > benchmark 0.0532971231460571 bench/interp 0.0532971231460571 gc 0.0) > ("ports.bm: read-char: latin-1 port" 10000000 user 0.7 benchmark > 0.318530330657959 bench/interp 0.318530330657959 gc 0.0) > ("ports.bm: read-char: utf-8 port, ascii character" 10000000 user 0.68 > benchmark 0.298530330657959 bench/interp 0.298530330657959 gc 0.0) > ("ports.bm: read-char: utf-8 port, Korean character" 10000000 user 0.68 > benchmark 0.298530330657959 bench/interp 0.298530330657959 gc 0.0) > ("ports.bm: char-ready?: latin-1 port" 10000000 user 0.57 benchmark > 0.188530330657959 bench/interp 0.188530330657959 gc 0.0) > ("ports.bm: char-ready?: utf-8 port, ascii character" 10000000 user 0.57 > benchmark 0.188530330657959 bench/interp 0.188530330657959 gc 0.0) > ("ports.bm: char-ready?: utf-8 port, Korean character" 10000000 user 0.57 > benchmark 0.188530330657959 bench/interp 0.188530330657959 gc 0.0) > ("ports.bm: rdelim: read-line" 1000 user 0.38 benchmark 0.379961853033066 > bench/interp 0.297933677033066 gc 0.082028176) > > After: > > ;; running guile version 2.1.0.43-4813a-dirty > ;; calibrating the benchmarking framework... > ;; framework time per iteration: 3.81469669342041e-8 > ("ports.bm: peek-char: latin-1 port" 700000 user 0.05 benchmark > 0.0232971231460571 bench/interp 0.0232971231460571 gc 0.0) > ("ports.bm: peek-char: utf-8 port, ascii character" 700000 user 0.05 > benchmark 0.0232971231460571 bench/interp 0.0232971231460571 gc 0.0) > ("ports.bm: peek-char: utf-8 port, Korean character" 700000 user 0.08 > benchmark 0.0532971231460571 bench/interp 0.0532971231460571 gc 0.0) > ("ports.bm: read-char: latin-1 port" 10000000 user 0.74 benchmark > 0.358530330657959 bench/interp 0.358530330657959 gc 0.0) > ("ports.bm: read-char: utf-8 port, ascii character" 10000000 user 0.76 > benchmark 0.378530330657959 bench/interp 0.378530330657959 gc 0.0) > ("ports.bm: read-char: utf-8 port, Korean character" 10000000 user 0.77 > benchmark 0.388530330657959 bench/interp 0.388530330657959 gc 0.0) > ("ports.bm: char-ready?: latin-1 port" 10000000 user 0.68 benchmark > 0.298530330657959 bench/interp 0.298530330657959 gc 0.0) > ("ports.bm: char-ready?: utf-8 port, ascii character" 10000000 user 0.64 > benchmark 0.258530330657959 bench/interp 0.258530330657959 gc 0.0) > ("ports.bm: char-ready?: utf-8 port, Korean character" 10000000 user 0.62 > benchmark 0.238530330657959 bench/interp 0.238530330657959 gc 0.0) > ("ports.bm: rdelim: read-line" 1000 user 0.39 benchmark 0.389961853033066 > bench/interp 0.306389294033066 gc 0.083572559) > > The times are quite variable, though. Thanks for running the bench! That’s not very conclusive, though. I improved ports.bm in stable-2.0 (in particular, the ‘read-char’ benchmarks made little sense before as they quickly reached EOF). It would be ideal if you could try it, and use --iteration-factor to have longer timings. Thanks, Ludo’.