Print the single thread hash performance at startup

This commit is contained in:
Jakob Borg
2015-10-20 08:27:22 +02:00
parent 0f9fa9507e
commit 1392d0bc14
2 changed files with 30 additions and 11 deletions

View File

@@ -112,15 +112,7 @@ func reportData(cfg *config.Wrapper, m *model.Model) map[string]interface{} {
var mem runtime.MemStats
runtime.ReadMemStats(&mem)
res["memoryUsageMiB"] = (mem.Sys - mem.HeapReleased) / 1024 / 1024
var perf float64
for i := 0; i < 5; i++ {
p := cpuBench()
if p > perf {
perf = p
}
}
res["sha256Perf"] = perf
res["sha256Perf"] = cpuBench(5, 125*time.Millisecond)
bytes, err := memorySize()
if err == nil {
@@ -301,7 +293,17 @@ func (s *usageReportingService) Stop() {
}
// cpuBench returns CPU performance as a measure of single threaded SHA-256 MiB/s
func cpuBench() float64 {
func cpuBench(iterations int, duration time.Duration) float64 {
var perf float64
for i := 0; i < iterations; i++ {
if v := cpuBenchOnce(duration); v > perf {
perf = v
}
}
return perf
}
func cpuBenchOnce(duration time.Duration) float64 {
chunkSize := 100 * 1 << 10
h := sha256.New()
bs := make([]byte, chunkSize)
@@ -309,7 +311,7 @@ func cpuBench() float64 {
t0 := time.Now()
b := 0
for time.Since(t0) < 125*time.Millisecond {
for time.Since(t0) < duration {
h.Write(bs)
b += chunkSize
}