diff options
author | Andy Wingo <wingo@pobox.com> | 2015-01-22 14:49:36 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2015-01-22 14:49:36 +0100 |
commit | e19235e21bad6fdf8c8152dc5b460685b551f330 (patch) | |
tree | 7418d69646df059651392ec11e16087cd18fb4a2 /benchmark-suite | |
parent | baf90102cf39f4fdfb446df9ba8f4407b88ea794 (diff) | |
parent | 01a301d1b606b84d986b735049e7155d2f4cd6aa (diff) |
Merge commit '01a301d1b606b84d986b735049e7155d2f4cd6aa'
Conflicts:
libguile/hash.c
Diffstat (limited to 'benchmark-suite')
-rw-r--r-- | benchmark-suite/Makefile.am | 1 | ||||
-rw-r--r-- | benchmark-suite/benchmarks/hash.bm | 53 |
2 files changed, 54 insertions, 0 deletions
diff --git a/benchmark-suite/Makefile.am b/benchmark-suite/Makefile.am index 9fa556891..12221211e 100644 --- a/benchmark-suite/Makefile.am +++ b/benchmark-suite/Makefile.am @@ -3,6 +3,7 @@ SCM_BENCHMARKS = benchmarks/0-reference.bm \ benchmarks/bytevectors.bm \ benchmarks/chars.bm \ benchmarks/continuations.bm \ + benchmarks/hash.bm \ benchmarks/if.bm \ benchmarks/logand.bm \ benchmarks/ports.bm \ diff --git a/benchmark-suite/benchmarks/hash.bm b/benchmark-suite/benchmarks/hash.bm new file mode 100644 index 000000000..9c2be57a1 --- /dev/null +++ b/benchmark-suite/benchmarks/hash.bm @@ -0,0 +1,53 @@ +;;; hash.bm --- Hash functions. -*- Scheme -*- +;;; +;;; Copyright (C) 2015 Free Software Foundation, Inc. +;;; +;;; This program is free software; you can redistribute it and/or +;;; modify it under the terms of the GNU Lesser General Public License +;;; as published by the Free Software Foundation; either version 3, 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 Lesser General Public License for more details. +;;; +;;; You should have received a copy of the GNU Lesser General Public +;;; License along with this software; see the file COPYING.LESSER. If +;;; not, write to the Free Software Foundation, Inc., 51 Franklin +;;; Street, Fifth Floor, Boston, MA 02110-1301 USA + +(define-module (benchmarks write) + #:use-module (benchmark-suite lib)) + +(define %narrow-string + (make-string 30 #\a)) + +(define %wide-string + (make-string 30 #\λ)) + +(define %long-string + (make-string 300 #\x)) + +(define-syntax repeat + (lambda (s) + (syntax-case s () + ((_ 1 exp) + #'exp) + ((_ count exp) + (with-syntax ((count (- (syntax->datum #'count) 1))) + #'(begin + exp + (repeat count exp))))))) + + +(with-benchmark-prefix "string-hash" + + (benchmark "narrow string" 100000 + (repeat 100 (string-hash %narrow-string))) + + (benchmark "wide string" 100000 + (repeat 100 (string-hash %wide-string))) + + (benchmark "long string" 100000 + (repeat 100 (string-hash %long-string)))) |