|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 32/59] controller: Allow specification of an input file
From: George Dunlap <george.dunlap@xxxxxxxxxx>
So that we can analyze data later if we want.
Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx>
---
main.go | 194 +++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 106 insertions(+), 88 deletions(-)
diff --git a/main.go b/main.go
index f8d77cf..ddb768c 100644
--- a/main.go
+++ b/main.go
@@ -26,101 +26,119 @@ import (
)
func main() {
- filename := "test.bench"
-
- switch(os.Args[1]) {
- case "plan":
- workerA := []string{"burnwait", "70", "200000"}
- //workerB := []string{"burnwait", "10", "20000000"}
- workerB := []string{"burnwait", "10", "300000",
- "burnwait", "20", "300000",
- "burnwait", "10", "300000",
- "burnwait", "10", "300000",
- "burnwait", "10", "300000",
- "burnwait", "10", "300000",
- "burnwait", "30", "300000",
- }
+ Args := os.Args
+ Args = Args[1:]
+ filename := "test.bench"
- plan := BenchmarkPlan{
- WorkerType:WorkerXen,
- WorkerConfig:WorkerConfig{Pool:"schedbench"},
- filename:filename,
- Runs:[]BenchmarkRun{
- {Label:"baseline-a",
+ for len(Args) > 0 {
+ switch(Args[0]) {
+ case "-f":
+ if len(Args) < 2 {
+ fmt.Println("Need arg for -f")
+ os.Exit(1)
+ }
+ filename = Args[1]
+ Args = Args[2:]
+ case "plan":
+ workerA := []string{"burnwait", "70", "200000"}
+ //workerB := []string{"burnwait", "10", "20000000"}
+ workerB := []string{"burnwait", "10", "300000",
+ "burnwait", "20", "300000",
+ "burnwait", "10", "300000",
+ "burnwait", "10", "300000",
+ "burnwait", "10", "300000",
+ "burnwait", "10", "300000",
+ "burnwait", "30", "300000",
+ }
+
+
+ plan := BenchmarkPlan{
+ WorkerType:WorkerXen,
+ WorkerConfig:WorkerConfig{Pool:"schedbench"},
+ filename:filename,
+ Runs:[]BenchmarkRun{
+ {Label:"baseline-a",
+ WorkerSets:[]WorkerSet{
+
{Params:WorkerParams{workerA},
+ Count:1}},
+ RuntimeSeconds:10,},
+ {Label:"baseline-b",
+ WorkerSets:[]WorkerSet{
+
{Params:WorkerParams{workerB},
+ Count:1}},
+ RuntimeSeconds:10,},
+ }}
+
+ for i := 1; i <= 16 ; i *= 2 {
+ label := fmt.Sprintf("%da+%db", i, i)
+ run := BenchmarkRun{
+ Label:label,
WorkerSets:[]WorkerSet{
{Params:WorkerParams{workerA},
- Count:1}},
- RuntimeSeconds:10,},
- {Label:"baseline-b",
- WorkerSets:[]WorkerSet{
+ Count:i},
{Params:WorkerParams{workerB},
- Count:1}},
- RuntimeSeconds:10,},
- }}
-
- for i := 1; i <= 16 ; i *= 2 {
- label := fmt.Sprintf("%da+%db", i, i)
- run := BenchmarkRun{
- Label:label,
- WorkerSets:[]WorkerSet{
- {Params:WorkerParams{workerA},
- Count:i},
- {Params:WorkerParams{workerB},
- Count:i}},
- RuntimeSeconds:10}
- plan.Runs = append(plan.Runs, run)
- }
-
- err := plan.Save()
- if err != nil {
- fmt.Println("Saving plan ", filename, " ", err)
- os.Exit(1)
- }
- fmt.Println("Created plan in ", filename)
- case "run":
- plan, err := LoadBenchmark(filename)
- if err != nil {
- fmt.Println("Loading benchmark ", filename, " ", err)
- os.Exit(1)
- }
-
- err = plan.Run()
- if err != nil {
- fmt.Println("Running benchmark run:", err)
- os.Exit(1)
- }
-
- case "report":
- verbosity := 0
- if len(os.Args) > 2 {
- verbosity, _ = strconv.Atoi(os.Args[2])
- }
- plan, err := LoadBenchmark(filename)
- if err != nil {
- fmt.Println("Loading benchmark ", filename, " ", err)
- os.Exit(1)
- }
-
- err = plan.TextReport(verbosity)
- if err != nil {
- fmt.Println("Running benchmark run:", err)
- os.Exit(1)
- }
- case "htmlreport":
- plan, err := LoadBenchmark(filename)
- if err != nil {
- fmt.Println("Loading benchmark ", filename, " ", err)
- os.Exit(1)
- }
-
- err = plan.HTMLReport()
- if err != nil {
- fmt.Println("Running benchmark run:", err)
+ Count:i}},
+ RuntimeSeconds:10}
+ plan.Runs = append(plan.Runs, run)
+ }
+
+ err := plan.Save()
+ if err != nil {
+ fmt.Println("Saving plan ", filename, " ", err)
+ os.Exit(1)
+ }
+ fmt.Println("Created plan in ", filename)
+ Args = Args[1:]
+ case "run":
+ plan, err := LoadBenchmark(filename)
+ if err != nil {
+ fmt.Println("Loading benchmark ", filename, "
", err)
+ os.Exit(1)
+ }
+
+ err = plan.Run()
+ if err != nil {
+ fmt.Println("Running benchmark run:", err)
+ os.Exit(1)
+ }
+ Args = Args[1:]
+
+ case "report":
+ verbosity := 0
+ Args = Args[1:]
+ if len(Args) > 0 {
+ verbosity, _ = strconv.Atoi(os.Args[0])
+ Args = Args[1:]
+ }
+ plan, err := LoadBenchmark(filename)
+ if err != nil {
+ fmt.Println("Loading benchmark ", filename, "
", err)
+ os.Exit(1)
+ }
+
+ err = plan.TextReport(verbosity)
+ if err != nil {
+ fmt.Println("Running benchmark run:", err)
+ os.Exit(1)
+ }
+ case "htmlreport":
+ plan, err := LoadBenchmark(filename)
+ if err != nil {
+ fmt.Println("Loading benchmark ", filename, "
", err)
+ os.Exit(1)
+ }
+
+ err = plan.HTMLReport()
+ if err != nil {
+ fmt.Println("Running benchmark run:", err)
+ os.Exit(1)
+ }
+ Args = Args[1:]
+ default:
+ fmt.Println("Unknown argument: ", Args[0])
os.Exit(1)
}
- default:
- fmt.Println("Unknown argument: ", os.Args[1])
}
}
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |