diff options
author | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-05-08 00:23:10 +0900 |
---|---|---|
committer | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-05-08 00:23:10 +0900 |
commit | 586b02a82282ac55f354a0b021ca695a8b3bf028 (patch) | |
tree | fd652b12b72304ed8cc7c58d4641e46f2e231f3f | |
parent | 4107b20d1221f1d868c2b47828a4ea825b11e4a9 (diff) | |
download | kati-586b02a82282ac55f354a0b021ca695a8b3bf028.tar.gz |
split -kati_eval_stats from -kati_stats
add shell func time (in eval time) in -kati_stats
-rw-r--r-- | func.go | 5 | ||||
-rw-r--r-- | main.go | 3 | ||||
-rw-r--r-- | stats.go | 4 |
3 files changed, 10 insertions, 2 deletions
@@ -10,6 +10,7 @@ import ( "sort" "strconv" "strings" + "time" ) // Func is a make function. @@ -660,6 +661,8 @@ func (f *funcOr) Eval(w io.Writer, ev *Evaluator) { // http://www.gnu.org/software/make/manual/make.html#Shell-Function type funcShell struct{ fclosure } +var shellFuncTime time.Duration + func (f *funcShell) Arity() int { return 1 } func (f *funcShell) Eval(w io.Writer, ev *Evaluator) { @@ -680,7 +683,9 @@ func (f *funcShell) Eval(w io.Writer, ev *Evaluator) { Args: cmdline, Stderr: os.Stderr, } + t := time.Now() out, err := cmd.Output() + shellFuncTime += time.Now().Sub(t) if err != nil { Log("$(shell %q) failed: %q", arg, err) } @@ -21,6 +21,7 @@ var ( heapprofile string memstats string katiStatsFlag bool + katiEvalStatsFlag bool loadJson string saveJson string loadGob string @@ -48,6 +49,7 @@ func parseFlags() { flag.StringVar(&heapprofile, "kati_heapprofile", "", "write heap profile to `file`") flag.StringVar(&memstats, "kati_memstats", "", "Show memstats with given templates") flag.BoolVar(&katiStatsFlag, "kati_stats", false, "Show a bunch of statistics") + flag.BoolVar(&katiEvalStatsFlag, "kati_eval_stats", false, "Show eval statistics") flag.BoolVar(&eagerCmdEvalFlag, "eager_cmd_eval", false, "Eval commands first.") flag.BoolVar(&syntaxCheckOnlyFlag, "c", false, "Syntax check only.") flag.StringVar(&queryFlag, "query", "", "Show the target info") @@ -171,6 +173,7 @@ func getDepGraph(clvars []string, targets []string) ([]*DepNode, Vars) { vars.Merge(er.vars) LogStats("eval time: %q", time.Now().Sub(startTime)) + LogStats("shell func time: %q", shellFuncTime) startTime = time.Now() db := NewDepBuilder(er, vars) @@ -16,7 +16,7 @@ type statsData struct { var stats = map[string]statsData{} func addStats(name string, v Value, t time.Time) { - if !katiStatsFlag { + if !katiEvalStatsFlag { return } d := time.Now().Sub(t) @@ -31,7 +31,7 @@ func addStats(name string, v Value, t time.Time) { } func dumpStats() { - if !katiStatsFlag { + if !katiEvalStatsFlag { return } var sv byTotalTime |