270 lines
5.1 KiB
Go
270 lines
5.1 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
// func BenchmarkLongToml(b *testing.B) {
|
|
// benchmarkFile(b, "long.toml")
|
|
// }
|
|
|
|
// func BenchmarkNormalToml(b *testing.B) {
|
|
// benchmarkFile(b, "normal.toml")
|
|
// }
|
|
|
|
// func BenchmarkShortToml(b *testing.B) {
|
|
// benchmarkFile(b, "short.toml")
|
|
// }
|
|
|
|
// func benchmarkFile(b *testing.B, file string) {
|
|
// toml := BuildGrammar()
|
|
// inputBytes, err := ioutil.ReadFile(file)
|
|
// if err != nil {
|
|
// b.Fatalf("Cannot read input file (%s): %s", file, err)
|
|
// }
|
|
// inputStr := string(inputBytes)
|
|
// for i := 0; i < b.N; i++ {
|
|
// _, err := toml.Match(inputStr)
|
|
// if err != nil {
|
|
// b.Fatalf("Error in parsing TOML input: %s\n", err)
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func BenchmarkReadArrayOfInt(b *testing.B) {
|
|
// type F [10]int
|
|
// arr := make([]F, 10000)
|
|
// for i := 0; i < 10000; i++ {
|
|
// arr[i] = [10]int{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// }
|
|
|
|
// for i := 0; i < b.N; i++ {
|
|
// for x := 0; x < 10000; x++ {
|
|
// val := arr[x][0] + arr[x][1] + arr[x][2] + arr[x][3] + arr[x][4] + arr[x][5] + arr[x][6] + arr[x][7] + arr[x][8] + arr[x][9]
|
|
// val += 0
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func BenchmarkWriteArrayOfInt(b *testing.B) {
|
|
// type F [10]int
|
|
// for i := 0; i < b.N; i++ {
|
|
// arr := make([]F, 10000)
|
|
// for i := 0; i < 10000; i++ {
|
|
// arr[i] = [10]int{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func BenchmarkWriteRandomArrayOfInt(b *testing.B) {
|
|
// type F [10]int
|
|
// for i := 0; i < b.N; i++ {
|
|
// arr := make([]F, 10000)
|
|
// for i := 0; i < 10000; i++ {
|
|
// arr[i] = [10]int{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// arr[i][0] = 666
|
|
// arr[i][1] = 666
|
|
// arr[i][2] = 666
|
|
// arr[i][3] = 666
|
|
// arr[i][4] = 666
|
|
// arr[i][5] = 666
|
|
// arr[i][6] = 666
|
|
// arr[i][7] = 666
|
|
// arr[i][8] = 666
|
|
// arr[i][9] = 666
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
func BenchmarkReadArrayOfStructs(b *testing.B) {
|
|
type F struct {
|
|
A int
|
|
B int
|
|
C int
|
|
D int
|
|
E int
|
|
F int
|
|
G int
|
|
H int
|
|
I int
|
|
J int
|
|
}
|
|
arr := make([]F, 10000)
|
|
for i := 0; i < 10000; i++ {
|
|
arr[i] = F{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
}
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
for x := 0; x < 10000; x++ {
|
|
val := arr[x].A + arr[x].B + arr[x].C + arr[x].D + arr[x].E + arr[x].F + arr[x].G + arr[x].H + arr[x].I + arr[x].J
|
|
val += 0
|
|
}
|
|
}
|
|
}
|
|
|
|
func BenchmarkReadStructOfArrays(b *testing.B) {
|
|
type F struct {
|
|
A []int
|
|
B []int
|
|
C []int
|
|
D []int
|
|
E []int
|
|
F []int
|
|
G []int
|
|
H []int
|
|
I []int
|
|
J []int
|
|
}
|
|
s := F{}
|
|
for i := 0; i < 10000; i++ {
|
|
s.A = append(s.A, 1)
|
|
s.B = append(s.B, 1)
|
|
s.C = append(s.C, 1)
|
|
s.D = append(s.D, 1)
|
|
s.E = append(s.E, 1)
|
|
s.F = append(s.F, 1)
|
|
s.G = append(s.G, 1)
|
|
s.H = append(s.H, 1)
|
|
s.I = append(s.I, 1)
|
|
s.J = append(s.J, 1)
|
|
}
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
for x := 0; x < 10000; x++ {
|
|
val := s.A[x] + s.B[x] + s.C[x] + s.D[x] + s.E[x] + s.F[x] + s.G[x] + s.H[x] + s.I[x] + s.J[x]
|
|
val += 0
|
|
}
|
|
}
|
|
}
|
|
|
|
// func BenchmarkWriteArrayOfStructs(b *testing.B) {
|
|
// type F struct {
|
|
// A int
|
|
// B int
|
|
// C int
|
|
// D int
|
|
// E int
|
|
// F int
|
|
// G int
|
|
// H int
|
|
// I int
|
|
// J int
|
|
// }
|
|
// for i := 0; i < b.N; i++ {
|
|
// arr := make([]F, 10000)
|
|
// for i := 0; i < 10000; i++ {
|
|
// arr[i] = F{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func BenchmarkWriteRandomArrayOfStructs(b *testing.B) {
|
|
// type F struct {
|
|
// A int
|
|
// B int
|
|
// C int
|
|
// D int
|
|
// E int
|
|
// F int
|
|
// G int
|
|
// H int
|
|
// I int
|
|
// J int
|
|
// }
|
|
// for i := 0; i < b.N; i++ {
|
|
// arr := make([]F, 10000)
|
|
// for i := 0; i < 10000; i++ {
|
|
// arr[i] = F{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// arr[i].A = 666
|
|
// arr[i].B = 666
|
|
// arr[i].C = 666
|
|
// arr[i].D = 666
|
|
// arr[i].E = 666
|
|
// arr[i].F = 666
|
|
// arr[i].G = 666
|
|
// arr[i].H = 666
|
|
// arr[i].I = 666
|
|
// arr[i].J = 666
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func BenchmarkReadMapOfStructs(b *testing.B) {
|
|
// type F struct {
|
|
// A int
|
|
// B int
|
|
// C int
|
|
// D int
|
|
// E int
|
|
// F int
|
|
// G int
|
|
// H int
|
|
// I int
|
|
// J int
|
|
// }
|
|
// fMap := make(map[int]F)
|
|
// for i := 0; i < 10000; i++ {
|
|
// fMap[i] = F{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// }
|
|
|
|
// for i := 0; i < b.N; i++ {
|
|
// for x := 0; x < 10000; x++ {
|
|
// val := fMap[x].A + fMap[x].B + fMap[x].C + fMap[x].D + fMap[x].E + fMap[x].F + fMap[x].G + fMap[x].H + fMap[x].I + fMap[x].J
|
|
// val += 0
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func BenchmarkWriteMapOfStructs(b *testing.B) {
|
|
// type F struct {
|
|
// A int
|
|
// B int
|
|
// C int
|
|
// D int
|
|
// E int
|
|
// F int
|
|
// G int
|
|
// H int
|
|
// I int
|
|
// J int
|
|
// }
|
|
// for i := 0; i < b.N; i++ {
|
|
// fMap := make(map[int]F)
|
|
// for i := 0; i < 10000; i++ {
|
|
// fMap[i] = F{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// func BenchmarkWriteRandomMapOfStructs(b *testing.B) {
|
|
// type F struct {
|
|
// A int
|
|
// B int
|
|
// C int
|
|
// D int
|
|
// E int
|
|
// F int
|
|
// G int
|
|
// H int
|
|
// I int
|
|
// J int
|
|
// }
|
|
// for i := 0; i < b.N; i++ {
|
|
// fMap := make(map[int]F)
|
|
// for i := 0; i < 10000; i++ {
|
|
// fMap[i] = F{i, 1, 2, 3, 4, 5, 6, 7, 8, 9}
|
|
// s := fMap[i]
|
|
// s.A = 666
|
|
// s.B = 666
|
|
// s.C = 666
|
|
// s.D = 666
|
|
// s.E = 666
|
|
// s.F = 666
|
|
// s.G = 666
|
|
// s.H = 666
|
|
// s.I = 666
|
|
// s.J = 666
|
|
// }
|
|
// }
|
|
// }
|