diff options
author | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-19 13:54:53 +0900 |
---|---|---|
committer | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-19 14:47:02 +0900 |
commit | ce14acbe573bdf2853e67ea418940e835c07409b (patch) | |
tree | 8fa3e7410a3d65d968cb39b1d1643e2495bf91cc /func.go | |
parent | 9e0c68dbe0001c71da084fa5bb3f02d6ee4fb4ed (diff) | |
download | android_build_kati-ce14acbe573bdf2853e67ea418940e835c07409b.tar.gz android_build_kati-ce14acbe573bdf2853e67ea418940e835c07409b.tar.bz2 android_build_kati-ce14acbe573bdf2853e67ea418940e835c07409b.zip |
reduce ssvWriter allocation in funcSort
mark old ns/op new ns/op delta
BenchmarkFuncSort 1572 1413 -10.11%
benchmark old allocs new allocs delta
BenchmarkFuncSort 8 7 -12.50%
benchmark old bytes new bytes delta
benchmarkFuncSort 188 156 -17.02%
Diffstat (limited to 'func.go')
-rw-r--r-- | func.go | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -303,12 +303,15 @@ func (f *funcSort) Eval(w io.Writer, ev *Evaluator) { // Remove duplicate words. var prev string - sw := ssvWriter{w: w} for _, tok := range toks { - if prev != tok { - sw.WriteString(tok) - prev = tok + if prev == tok { + continue + } + if prev != "" { + writeByte(w, ' ') } + io.WriteString(w, tok) + prev = tok } addStats("funcbody", "sort", t) } |