| | |
| | |
| | |
| |
|
| | package reflectdata_test |
| |
|
| | import ( |
| | "testing" |
| | ) |
| |
|
| | func BenchmarkEqArrayOfStrings5(b *testing.B) { |
| | var a [5]string |
| | var c [5]string |
| |
|
| | for i := 0; i < 5; i++ { |
| | a[i] = "aaaa" |
| | c[i] = "cccc" |
| | } |
| |
|
| | for j := 0; j < b.N; j++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | func BenchmarkEqArrayOfStrings64(b *testing.B) { |
| | var a [64]string |
| | var c [64]string |
| |
|
| | for i := 0; i < 64; i++ { |
| | a[i] = "aaaa" |
| | c[i] = "cccc" |
| | } |
| |
|
| | for j := 0; j < b.N; j++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | func BenchmarkEqArrayOfStrings1024(b *testing.B) { |
| | var a [1024]string |
| | var c [1024]string |
| |
|
| | for i := 0; i < 1024; i++ { |
| | a[i] = "aaaa" |
| | c[i] = "cccc" |
| | } |
| |
|
| | for j := 0; j < b.N; j++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | func BenchmarkEqArrayOfFloats5(b *testing.B) { |
| | var a [5]float32 |
| | var c [5]float32 |
| |
|
| | for i := 0; i < b.N; i++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | func BenchmarkEqArrayOfFloats64(b *testing.B) { |
| | var a [64]float32 |
| | var c [64]float32 |
| |
|
| | for i := 0; i < b.N; i++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | func BenchmarkEqArrayOfFloats1024(b *testing.B) { |
| | var a [1024]float32 |
| | var c [1024]float32 |
| |
|
| | for i := 0; i < b.N; i++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | func BenchmarkEqArrayOfStructsEq(b *testing.B) { |
| | type T2 struct { |
| | a string |
| | b int |
| | } |
| | const size = 1024 |
| | var ( |
| | str1 = "foobar" |
| |
|
| | a [size]T2 |
| | c [size]T2 |
| | ) |
| |
|
| | for i := 0; i < size; i++ { |
| | a[i].a = str1 |
| | c[i].a = str1 |
| | } |
| |
|
| | b.ResetTimer() |
| | for j := 0; j < b.N; j++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | func BenchmarkEqArrayOfStructsNotEq(b *testing.B) { |
| | type T2 struct { |
| | a string |
| | b int |
| | } |
| | const size = 1024 |
| | var ( |
| | str1 = "foobar" |
| | str2 = "foobarz" |
| |
|
| | a [size]T2 |
| | c [size]T2 |
| | ) |
| |
|
| | for i := 0; i < size; i++ { |
| | a[i].a = str1 |
| | c[i].a = str1 |
| | } |
| | c[len(c)-1].a = str2 |
| |
|
| | b.ResetTimer() |
| | for j := 0; j < b.N; j++ { |
| | _ = a == c |
| | } |
| | } |
| |
|
| | const size = 16 |
| |
|
| | type T1 struct { |
| | a [size]byte |
| | } |
| |
|
| | func BenchmarkEqStruct(b *testing.B) { |
| | x, y := T1{}, T1{} |
| | x.a = [size]byte{1, 2, 3, 4, 5, 6, 7, 8} |
| | y.a = [size]byte{2, 3, 4, 5, 6, 7, 8, 9} |
| |
|
| | for i := 0; i < b.N; i++ { |
| | f := x == y |
| | if f { |
| | println("hello") |
| | } |
| | } |
| | } |
| |
|