simplify render benchmark code

by using report.MakeFromFile instead of NewFileConnector
This commit is contained in:
Matthias Radestock
2017-11-29 11:37:39 +00:00
parent e73ba58740
commit f2fed067d5

View File

@@ -5,9 +5,6 @@ import (
"net/http"
"net/url"
"testing"
"time"
"golang.org/x/net/context"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/report"
@@ -15,22 +12,9 @@ import (
)
var (
benchReportFile = flag.String("bench-report-file", "", "json report file to use for benchmarking (relative to this package)")
benchReportFile = flag.String("bench-report-file", "", "report file to use for benchmarking (relative to this package)")
)
func loadReport() (report.Report, error) {
if *benchReportFile == "" {
return fixture.Report, nil
}
c, err := NewFileCollector(*benchReportFile, 0)
if err != nil {
return fixture.Report, err
}
return c.Report(context.Background(), time.Now())
}
func BenchmarkTopologyList(b *testing.B) {
benchmarkRender(b, func(report report.Report) {
request := &http.Request{
@@ -41,17 +25,22 @@ func BenchmarkTopologyList(b *testing.B) {
}
func benchmarkRender(b *testing.B, f func(report.Report)) {
report, err := loadReport()
if err != nil {
b.Fatal(err)
r := fixture.Report
if *benchReportFile != "" {
var err error
if r, err = report.MakeFromFile(*benchReportFile); err != nil {
b.Fatal(err)
}
}
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
b.StopTimer()
render.ResetCache()
b.StartTimer()
f(report)
f(r)
}
}