Refactoring of benchmarks

This commit is contained in:
2016-03-27 02:59:35 +03:00
parent 719c3c2eea
commit ccddb24e1d

View File

@@ -3,17 +3,16 @@ package main
import ( import (
"io/ioutil" "io/ioutil"
"log"
"math/rand" "math/rand"
"os" "os"
"testing" "testing"
) )
func BenchmarkCsvSavingOnlySum(b *testing.B) { func GenerateRandStatsForTime(N int) []StatForTime {
data := make([]StatForTime, 0) data := make([]StatForTime, 0)
keyMap := GetKeymap() keyMap := GetKeymap()
rnd := rand.New(rand.NewSource(42)) rnd := rand.New(rand.NewSource(42))
for i := 0; i < b.N; i++ { for i := 0; i < N; i++ {
var curStat StatForTime var curStat StatForTime
curStat.Init() curStat.Init()
for keyNum := range keyMap { for keyNum := range keyMap {
@@ -24,9 +23,16 @@ func BenchmarkCsvSavingOnlySum(b *testing.B) {
data = append(data, curStat) data = append(data, curStat)
} }
return data
}
func BenchmarkCsvSavingOnlySum(b *testing.B) {
data := GenerateRandStatsForTime(b.N)
keyMap := GetKeymap()
tmpFile, err := ioutil.TempFile(os.TempDir(), "benchmark") tmpFile, err := ioutil.TempFile(os.TempDir(), "benchmark")
if err != nil { if err != nil {
log.Fatal(err) b.Fatal(err)
} }
defer os.Remove(tmpFile.Name()) defer os.Remove(tmpFile.Name())
@@ -37,22 +43,12 @@ func BenchmarkCsvSavingOnlySum(b *testing.B) {
} }
func BenchmarkCsvSaving(b *testing.B) { func BenchmarkCsvSaving(b *testing.B) {
data := make([]StatForTime, 0) data := GenerateRandStatsForTime(b.N)
keyMap := GetKeymap() keyMap := GetKeymap()
rnd := rand.New(rand.NewSource(42))
for i := 0; i < b.N; i++ {
var curStat StatForTime
curStat.Init()
for keyNum := range keyMap {
if rnd.Float32() > 0.7 {
curStat.keys[keyNum] = rnd.Intn(5000)
}
}
data = append(data, curStat)
}
tmpFile, err := ioutil.TempFile(os.TempDir(), "benchmark") tmpFile, err := ioutil.TempFile(os.TempDir(), "benchmark")
if err != nil { if err != nil {
log.Fatal(err) b.Fatal(err)
} }
defer os.Remove(tmpFile.Name()) defer os.Remove(tmpFile.Name())