mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-24 07:46:41 +00:00
simplify render benchmark code
by using report.MakeFromFile instead of NewFileConnector
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user