github.com/DARA-Project/GoDist-Scheduler@v0.0.0-20201030134746-668de4acea0d/tools/schedule_info.go (about) 1 package main 2 3 import ( 4 "dara" 5 "fmt" 6 "github.com/DARA-Project/GoDist-Scheduler/common" 7 "log" 8 "os" 9 ) 10 11 func stats(schedule *dara.Schedule) { 12 event_stats := make(map[int]int) 13 for _, event := range schedule.LogEvents { 14 event_stats[event.Type] = event_stats[event.Type] + 1 15 } 16 for k, v := range event_stats { 17 log.Println(common.EventTypeString(k), " Events :", v) 18 } 19 } 20 21 func get_num_schedule(schedule *dara.Schedule) int { 22 event_stats := make(map[int]int) 23 for _, event := range schedule.LogEvents { 24 event_stats[event.Type] = event_stats[event.Type] + 1 25 } 26 return event_stats[dara.SCHED_EVENT] 27 } 28 29 func main() { 30 if len(os.Args) < 2 { 31 log.Fatal("Usage: go run schedule_info.go <schedule_filename>") 32 } 33 filename := os.Args[1] 34 schedule, err := common.ReadSchedule(filename) 35 if err != nil { 36 log.Fatal(err) 37 } 38 if len(os.Args) > 2 && os.Args[2] == "scale" { 39 num_schedule := get_num_schedule(schedule) 40 fmt.Printf("%d,%d\n", len(schedule.LogEvents), num_schedule) 41 } else { 42 log.Println("SCHEDULE LENGTH :", len(schedule.LogEvents)) 43 stats(schedule) 44 } 45 }