diff options
author | Ludovic Courtès <ludo@gnu.org> | 2008-06-01 19:31:36 +0200 |
---|---|---|
committer | Neil Jerram <neil@ossau.uklinux.net> | 2008-09-15 01:35:04 +0100 |
commit | aa51e98ac5bcb36298741c9948039ac253e86c35 (patch) | |
tree | 538d3abd79800a1c737263c3fccc85633acd11af /benchmark-suite | |
parent | 3394818c0a465c8b337252250174ecb0d13d726d (diff) |
Add `uniform-vector-read!' benchmark.
Diffstat (limited to 'benchmark-suite')
-rw-r--r-- | benchmark-suite/Makefile.am | 11 | ||||
-rw-r--r-- | benchmark-suite/benchmarks/uniform-vector-read.bm | 53 |
2 files changed, 59 insertions, 5 deletions
diff --git a/benchmark-suite/Makefile.am b/benchmark-suite/Makefile.am index afd1e77bd..5357cf050 100644 --- a/benchmark-suite/Makefile.am +++ b/benchmark-suite/Makefile.am @@ -1,8 +1,9 @@ -SCM_BENCHMARKS = benchmarks/0-reference.bm \ - benchmarks/continuations.bm \ - benchmarks/if.bm \ - benchmarks/logand.bm \ - benchmarks/read.bm +SCM_BENCHMARKS = benchmarks/0-reference.bm \ + benchmarks/continuations.bm \ + benchmarks/if.bm \ + benchmarks/logand.bm \ + benchmarks/read.bm \ + benchmarks/uniform-vector-read.bm EXTRA_DIST = guile-benchmark lib.scm $(SCM_BENCHMARKS) \ ChangeLog-2008 diff --git a/benchmark-suite/benchmarks/uniform-vector-read.bm b/benchmark-suite/benchmarks/uniform-vector-read.bm new file mode 100644 index 000000000..d288f0b44 --- /dev/null +++ b/benchmark-suite/benchmarks/uniform-vector-read.bm @@ -0,0 +1,53 @@ +;;; uniform-vector-read.bm --- Exercise binary I/O primitives. -*- Scheme -*- +;;; +;;; Copyright (C) 2008 Free Software Foundation, Inc. +;;; +;;; This program is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 2, or (at your option) +;;; any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this software; see the file COPYING. If not, write to +;;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;;; Boston, MA 02110-1301 USA + +(define-module (benchmarks uniform-vector-read) + :use-module (benchmark-suite lib) + :use-module (srfi srfi-4)) + +(define file-name + (tmpnam)) + +(define %buffer-size + 7777) + +(define buf + (make-u8vector %buffer-size)) + +(define str + (make-string %buffer-size)) + + +(with-benchmark-prefix "uniform-vector-read!" + + (benchmark "uniform-vector-write" 500 + (let ((output (open-output-file file-name))) + (uniform-vector-write buf output) + (close output))) + + (benchmark "uniform-vector-read!" 500 + (let ((input (open-input-file file-name))) + (setvbuf input _IONBF) + (uniform-vector-read! buf input) + (close input))) + + (benchmark "string port" 5000 + (let ((input (open-input-string str))) + (uniform-vector-read! buf input) + (close input)))) |