mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
According to the new benchmarks, this leads a 5% speed improvement when reading small strings, and a 27% improvement when reading large strings. * libguile/read.c (READER_STRING_BUFFER_SIZE): Change to 128; update comment to mention codepoints. (scm_read_string): Make `str' a list of strings, instead of a string. Store characters read in buffer `c_str'. Cons to STR when C_STR is full, and concatenate/reverse at the end. * benchmark-suite/benchmarks/read.bm (small, large): New variables. Set %DEFAULT-PORT-ENCODING to "UTF-8". ("read")["small strings", "large strings"]: New benchmarks. |
||
---|---|---|
.. | ||
benchmark-suite | ||
benchmarks | ||
results | ||
ChangeLog-2008 | ||
guile-benchmark | ||
Makefile.am | ||
README |
This directory contains some benchmarks for Guile, and some generic benchmarking support code. To run these benchmarks, you will need a version of Guile more recent than 15 Feb 1999 --- the benchmarks use the (ice-9 and-let*) and (ice-9 getopt-long) modules, which were added to Guile around then. For information about how to run the benchmark suite, read the usage instructions in the comments at the top of the guile-benchmark script. You can reference the file `lib.scm' from your own code as the module (benchmark-suite lib); it also has comments at the top and before each function explaining what's going on. Please write more Guile benchmarks, and send them to bug-guile@gnu.org. We'll merge them into the distribution. All benchmark suites must be licensed for our use under the GPL, but I don't think we're going to collect assignment papers for them.