aboutsummaryrefslogtreecommitdiffstats
path: root/worker.go
diff options
context:
space:
mode:
authorFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-05-07 12:56:12 +0900
committerFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-05-07 15:12:44 +0900
commitb06cd9d54075f942445f0030da9993368a1f49ab (patch)
tree6a99750aeed9863b8040c6f6d3d8d2402a4c74de /worker.go
parent5ca0ecded9bc653fd9de59a2fad414d6f2da3bcf (diff)
downloadandroid_build_kati-b06cd9d54075f942445f0030da9993368a1f49ab.tar.gz
android_build_kati-b06cd9d54075f942445f0030da9993368a1f49ab.tar.bz2
android_build_kati-b06cd9d54075f942445f0030da9993368a1f49ab.zip
use sync.Pool for temporal bytes.Buffer.
remove ev.Value and ev.Values before: scanblock: 8.22s (14.83%) runtime.MScan_Sweep 4.99s(9.00%) after: scanblock: 7.42s (12.95%) runtime.MScan_Sweep 4.57s(7.98%)
Diffstat (limited to 'worker.go')
-rw-r--r--worker.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/worker.go b/worker.go
index 456cf3d..5d3472f 100644
--- a/worker.go
+++ b/worker.go
@@ -113,7 +113,10 @@ func evalCmd(ev *Evaluator, r runner, s string) []runner {
if err != nil {
panic(fmt.Errorf("parse cmd %q: %v", r.cmd, err))
}
- cmds := string(ev.Value(expr))
+ buf := newBuf()
+ expr.Eval(buf, ev)
+ cmds := buf.String()
+ freeBuf(buf)
var runners []runner
for _, cmd := range strings.Split(cmds, "\n") {
if len(runners) > 0 && strings.HasSuffix(runners[len(runners)-1].cmd, "\\") {