-
Notifications
You must be signed in to change notification settings - Fork 11
/
pcopy_benchmark_ptr_baseslice_test.go
65 lines (57 loc) · 2.25 KB
/
pcopy_benchmark_ptr_baseslice_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright [2020-2023] [guonaihong]
package pcopy
import "testing"
func Benchmark_Ptr_BaseSlice_Unsafe_Pcopy(b *testing.B) {
err := Preheat(&test_BaseSliceType_ptr_Dst{}, &test_BaseSliceType_ptr_Src{})
if err != nil {
b.Fatal(err)
}
b.ResetTimer()
for i := 0; i < b.N; i++ {
var dst test_BaseSliceType_ptr_Dst
err := Copy(&dst, &local_test_BaseSliceType_ptr_Src, WithUsePreheat())
if err != nil {
b.Fatal(err)
}
}
}
func Benchmark_Ptr_BaseSlice_RawCopy(b *testing.B) {
for i := 0; i < b.N; i++ {
var dst test_BaseSliceType_ptr_Dst
dst.A = newDef(append([]int{}, local_test_BaseSliceType_ptr_Src.A...))
dst.B = newDef(append([]int8{}, local_test_BaseSliceType_ptr_Src.B...))
dst.C = newDef(append([]int16{}, local_test_BaseSliceType_ptr_Src.C...))
dst.D = newDef(append([]int32{}, local_test_BaseSliceType_ptr_Src.D...))
dst.E = newDef(append([]int64{}, local_test_BaseSliceType_ptr_Src.E...))
dst.F = newDef(append([]uint{}, local_test_BaseSliceType_ptr_Src.F...))
dst.G = newDef(append([]uint8{}, local_test_BaseSliceType_ptr_Src.G...))
dst.H = newDef(append([]uint16{}, local_test_BaseSliceType_ptr_Src.H...))
dst.I = newDef(append([]uint32{}, local_test_BaseSliceType_ptr_Src.I...))
dst.J = newDef(append([]uint64{}, local_test_BaseSliceType_ptr_Src.J...))
dst.K = newDef(append([]uintptr{}, local_test_BaseSliceType_ptr_Src.K...))
dst.L = newDef(append([]float32{}, local_test_BaseSliceType_ptr_Src.L...))
dst.M = newDef(append([]float64{}, local_test_BaseSliceType_ptr_Src.M...))
dst.N = newDef(append([]complex64{}, local_test_BaseSliceType_ptr_Src.N...))
dst.O = newDef(append([]complex128{}, local_test_BaseSliceType_ptr_Src.O...))
dst.P = newDef(append([]bool{}, local_test_BaseSliceType_ptr_Src.P...))
dst.Q = newDef(append([]string{}, local_test_BaseSliceType_ptr_Src.Q...))
}
}
func Benchmark_Ptr_BaseSlice_miniCopy(b *testing.B) {
for i := 0; i < b.N; i++ {
var dst test_BaseSliceType_ptr_Dst
err := miniCopy(&dst, &local_test_BaseSliceType_ptr_Src)
if err != nil {
b.Fatal(err)
}
}
}
func Benchmark_Ptr_BaseSlice_Reflect_Pcopy(b *testing.B) {
for i := 0; i < b.N; i++ {
var dst test_BaseSliceType_ptr_Dst
err := Copy(&dst, &local_test_BaseSliceType_ptr_Src)
if err != nil {
b.Fatal(err)
}
}
}