mirror of
https://github.com/intel/llvm.git
synced 2026-01-19 17:45:07 +08:00
benchcomp: Add a mode for analyzing rule execution time in ninja log files.
llvm-svn: 265860
This commit is contained in:
@@ -110,6 +110,34 @@ func benchnums(path, stat string) map[string]float64 {
|
||||
return m
|
||||
}
|
||||
|
||||
func ninja_logs(path string) map[string]float64 {
|
||||
m := make(map[string]float64)
|
||||
|
||||
fh, err := os.Open(path)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
scanner := bufio.NewScanner(fh)
|
||||
for scanner.Scan() {
|
||||
elems := strings.Split(scanner.Text(), "\t")
|
||||
if len(elems) < 4 {
|
||||
continue
|
||||
}
|
||||
begin, err := strconv.ParseInt(elems[0], 10, 64)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
end, err := strconv.ParseInt(elems[1], 10, 64)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
m[elems[3]] = float64(end-begin)
|
||||
}
|
||||
|
||||
return m
|
||||
}
|
||||
|
||||
func main() {
|
||||
var cmp func(string) map[string]float64
|
||||
switch os.Args[1] {
|
||||
@@ -128,6 +156,9 @@ func main() {
|
||||
cmp = func(path string) map[string]float64 {
|
||||
return benchnums(path, "allocs/op")
|
||||
}
|
||||
|
||||
case "ninja_logs":
|
||||
cmp = ninja_logs
|
||||
}
|
||||
|
||||
syms1 := cmp(os.Args[2])
|
||||
|
||||
Reference in New Issue
Block a user