summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-12-04 21:44:29 -0800
committerRuss Cox <rsc@golang.org>2009-12-04 21:44:29 -0800
commit0a3a9d532ba675dd4746f5929a24990b6c7d4b4d (patch)
tree96541a4fb4055d5e931455e381c5c6ced58da8d8
parent2815dde529ee400ae3981e20d694aef0a947dc3f (diff)
downloadgo-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.go4
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];
}
}