diff options
author | Russ Cox <rsc@golang.org> | 2009-12-04 21:44:29 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-12-04 21:44:29 -0800 |
commit | 864c6bcbc760e1726b3e1a8274fab0445b869525 (patch) | |
tree | 8dc2ab14421d97e3b50692d8af1ee39aa956b3e1 | |
parent | 864c757a1cff01f57ff415229674bcf8f701836c (diff) | |
download | go-864c6bcbc760e1726b3e1a8274fab0445b869525.tar.gz go-864c6bcbc760e1726b3e1a8274fab0445b869525.zip |
test/bench: use range in reverse-complement
1.9s gcc reverse-complement.c
reverse-complement.go
4.5s / 3.5s original, with/without bounds checks
3.5s / 3.3s bounds check reduction
3.3s / 2.8s smarter garbage collector
2.6s / 2.3s assembler bytes.IndexByte
2.5s / 2.1s even smarter garbage collector
2.3s / 2.1s fix optimizer unnecessary spill bug
2.0s / 1.9s change loop to range (this CL)
R=r
https://golang.org/cl/166072
-rw-r--r-- | test/bench/reverse-complement.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/bench/reverse-complement.go b/test/bench/reverse-complement.go index 60e14dba8c..a685e43b5b 100644 --- a/test/bench/reverse-complement.go +++ b/test/bench/reverse-complement.go @@ -86,9 +86,9 @@ func main() { } // This loop is the bottleneck. - for r := 0; r < len(line); r++ { + for _, c := range line { w--; - buf[w] = complement[line[r]]; + buf[w] = complement[c]; } } |