2008/9/15 Neil Jerram <[EMAIL PROTECTED]>: > > 2008/7/16 Ludovic Courtès <[EMAIL PROTECTED]>: > >> My post also contained a `uniform-vector-read!' benchmark, which showed >> a noticeable performance improvement on unbuffered ports. Could you try >> (and commit) that also? > > Yes, I'll do that shortly (before and separately from the libguile > code changes).
I've attached the benchmark results before and after the libguile changes. Can you check that they are as you would expect? (I assume the important change is the reduction from 2.69 to 0.01 for the uniform-vector-read benchmark!) Regards, Neil
[EMAIL PROTECTED]:~/SW/Guile/guile-git$ ./benchmark-guile Benchmarking /home/neil/SW/Guile/guile-git/pre-inst-guile ... with GUILE_LOAD_PATH=/home/neil/SW/Guile/guile-git/benchmark-suite ;; running guile version 1.8.5 ;; calibrating the benchmarking framework... ;; framework time per iteration: 1.23977661132813e-6 ("0-reference.bm: reference benchmark for iteration counts" 330000 user 0.53 benchmark 0.120873718261719 bench/interp 0.0308737182617187 gc 0.09) ("continuations.bm: call/cc" 300 user 0.47 benchmark 0.469628067016601 bench/interp 0.259628067016602 gc 0.21) ("if.bm: if-<expr>-then-else: executing then" 330000 user 0.53 benchmark 0.120873718261719 bench/interp 0.0808737182617188 gc 0.04) ("if.bm: if-<expr>-then-else: executing else" 330000 user 0.54 benchmark 0.130873718261719 bench/interp 0.0908737182617188 gc 0.04) ("if.bm: if-<expr>-then: executing then" 330000 user 0.55 benchmark 0.140873718261719 bench/interp 0.110873718261719 gc 0.03) ("if.bm: if-<expr>-then: executing else" 330000 user 0.55 benchmark 0.140873718261719 bench/interp 0.100873718261719 gc 0.04) ("if.bm: if-<iloc>-then-else: executing then" 330000 user 0.51 benchmark 0.100873718261719 bench/interp 0.0608737182617188 gc 0.04) ("if.bm: if-<iloc>-then-else: executing else" 330000 user 0.49 benchmark 0.0808737182617188 bench/interp 0.0608737182617188 gc 0.02) ("if.bm: if-<iloc>-then: executing then" 330000 user 0.5 benchmark 0.0908737182617188 bench/interp 0.0608737182617188 gc 0.03) ("if.bm: if-<iloc>-then: executing else" 330000 user 0.5 benchmark 0.0908737182617188 bench/interp 0.0508737182617188 gc 0.04) ("if.bm: if-<bool>-then-else: executing then" 330000 user 0.48 benchmark 0.0708737182617187 bench/interp 0.0508737182617188 gc 0.02) ("if.bm: if-<bool>-then-else: executing else" 330000 user 0.49 benchmark 0.0808737182617188 bench/interp 0.0508737182617188 gc 0.03) ("if.bm: if-<bool>-then: executing then" 330000 user 0.48 benchmark 0.0708737182617187 bench/interp 0.0408737182617188 gc 0.03) ("if.bm: if-<bool>-then: executing else" 330000 user 0.49 benchmark 0.0808737182617188 bench/interp 0.0408737182617188 gc 0.04) ("logand.bm: bignum" 130000 user 0.43 benchmark 0.268829040527344 bench/interp 0.258829040527344 gc 0.01) ("read.bm: read: _IONBF" 5 user 1.85 benchmark 1.84999380111694 bench/interp 1.72999380111694 gc 0.12) ("read.bm: read: _IOLBF" 100 user 10.85 benchmark 10.8498760223389 bench/interp 9.07987602233887 gc 1.77) ("read.bm: read: _IOFBF 4096" 100 user 10.87 benchmark 10.8698760223389 bench/interp 9.05987602233887 gc 1.81) ("read.bm: read: _IOFBF 8192" 100 user 9.66 benchmark 9.65987602233887 bench/interp 8.16987602233887 gc 1.49) ("read.bm: read: _IOFBF 16384" 100 user 10.01 benchmark 10.0098760223389 bench/interp 8.49987602233887 gc 1.51) ("uniform-vector-read.bm: uniform-vector-read!: uniform-vector-write" 500 user 0.06 benchmark 0.0593801116943359 bench/interp 0.0593801116943359 gc 0.0) ("uniform-vector-read.bm: uniform-vector-read!: uniform-vector-read!" 500 user 2.69 benchmark 2.68938011169434 bench/interp 2.68938011169434 gc 0.0) ("uniform-vector-read.bm: uniform-vector-read!: string port" 5000 user 0.11 benchmark 0.103801116943359 bench/interp 0.103801116943359 gc 0.0)
[EMAIL PROTECTED]:~/SW/Guile/guile-git$ ./benchmark-guile Benchmarking /home/neil/SW/Guile/guile-git/pre-inst-guile ... with GUILE_LOAD_PATH=/home/neil/SW/Guile/guile-git/benchmark-suite ;; running guile version 1.8.5 ;; calibrating the benchmarking framework... ;; framework time per iteration: 1.23977661132813e-6 ("0-reference.bm: reference benchmark for iteration counts" 330000 user 0.54 benchmark 0.130873718261719 bench/interp 0.0508737182617188 gc 0.08) ("continuations.bm: call/cc" 300 user 0.47 benchmark 0.469628067016601 bench/interp 0.279628067016602 gc 0.19) ("if.bm: if-<expr>-then-else: executing then" 330000 user 0.54 benchmark 0.130873718261719 bench/interp 0.0708737182617187 gc 0.06) ("if.bm: if-<expr>-then-else: executing else" 330000 user 0.56 benchmark 0.150873718261719 bench/interp 0.100873718261719 gc 0.05) ("if.bm: if-<expr>-then: executing then" 330000 user 0.56 benchmark 0.150873718261719 bench/interp 0.110873718261719 gc 0.04) ("if.bm: if-<expr>-then: executing else" 330000 user 0.55 benchmark 0.140873718261719 bench/interp 0.0908737182617188 gc 0.05) ("if.bm: if-<iloc>-then-else: executing then" 330000 user 0.53 benchmark 0.120873718261719 bench/interp 0.0708737182617187 gc 0.05) ("if.bm: if-<iloc>-then-else: executing else" 330000 user 0.5 benchmark 0.0908737182617188 bench/interp 0.0608737182617188 gc 0.03) ("if.bm: if-<iloc>-then: executing then" 330000 user 0.51 benchmark 0.100873718261719 bench/interp 0.0708737182617187 gc 0.03) ("if.bm: if-<iloc>-then: executing else" 330000 user 0.5 benchmark 0.0908737182617188 bench/interp 0.0708737182617187 gc 0.02) ("if.bm: if-<bool>-then-else: executing then" 330000 user 0.49 benchmark 0.0808737182617188 bench/interp 0.0508737182617188 gc 0.03) ("if.bm: if-<bool>-then-else: executing else" 330000 user 0.49 benchmark 0.0808737182617188 bench/interp 0.0608737182617188 gc 0.02) ("if.bm: if-<bool>-then: executing then" 330000 user 0.49 benchmark 0.0808737182617188 bench/interp 0.0508737182617188 gc 0.03) ("if.bm: if-<bool>-then: executing else" 330000 user 0.49 benchmark 0.0808737182617188 bench/interp 0.0508737182617188 gc 0.03) ("logand.bm: bignum" 130000 user 0.41 benchmark 0.248829040527344 bench/interp 0.228829040527344 gc 0.02) ("read.bm: read: _IONBF" 5 user 1.76 benchmark 1.75999380111694 bench/interp 1.64999380111694 gc 0.11) ("read.bm: read: _IOLBF" 100 user 10.91 benchmark 10.9098760223389 bench/interp 9.09987602233887 gc 1.81) ("read.bm: read: _IOFBF 4096" 100 user 10.93 benchmark 10.9298760223389 bench/interp 9.14987602233887 gc 1.78) ("read.bm: read: _IOFBF 8192" 100 user 9.69 benchmark 9.68987602233887 bench/interp 8.16987602233887 gc 1.52) ("read.bm: read: _IOFBF 16384" 100 user 10.03 benchmark 10.0298760223389 bench/interp 8.46987602233887 gc 1.56) ("uniform-vector-read.bm: uniform-vector-read!: uniform-vector-write" 500 user 0.06 benchmark 0.0593801116943359 bench/interp 0.0593801116943359 gc 0.0) ("uniform-vector-read.bm: uniform-vector-read!: uniform-vector-read!" 500 user 0.01 benchmark 0.00938011169433594 bench/interp 0.00938011169433594 gc 0.0) ("uniform-vector-read.bm: uniform-vector-read!: string port" 5000 user 0.11 benchmark 0.103801116943359 bench/interp 0.103801116943359 gc 0.0)