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 | 0a3a9d532ba675dd4746f5929a24990b6c7d4b4d (patch) | |
tree | 96541a4fb4055d5e931455e381c5c6ced58da8d8 | |
parent | 2815dde529ee400ae3981e20d694aef0a947dc3f (diff) | |
download | go-0a3a9d532ba675dd4746f5929a24990b6c7d4b4d.tar.gz |
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
http://codereview.appspot.com/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 60e14dba8..a685e43b5 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]; } } |