-
Notifications
You must be signed in to change notification settings - Fork 0
/
jsonConvert_test.go
56 lines (54 loc) · 1.05 KB
/
jsonConvert_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
package fastRPC
import (
"encoding/json"
"fmt"
"reflect"
"testing"
"unsafe"
)
func BenchmarkJsonConvert(b *testing.B) {
t2 := test{
Name: "xiyang",
Age: 47,
Sex: 1,
//result: map[string]interface{}{"xiyang": "hello"},
//structTest: test2{
// Name: "hello",
//},
}
var mapping = make(map[uintptr][]byte)
for i := 0; i < b.N; i++ {
value := reflect.ValueOf(t2)
if _, ok := mapping[uintptr(unsafe.Pointer(&value))]; ok {
continue
}
bytes, err := convertValueToByte(value)
mapping[uintptr(unsafe.Pointer(&value))] = bytes
if err != nil {
fmt.Println("method err ")
return
}
//sb := strings.Builder{}
//sb.WriteString("{")
//sb.WriteString(string(value))
//sb.WriteString("}")
}
}
func BenchmarkJsonMarshal(b *testing.B) {
t2 := test{
Name: "xiyang",
Age: 47,
Sex: 1,
//result: map[string]interface{}{"xiyang": "hello"},
//structTest: test2{
// Name: "hello",
//},
}
for i := 0; i < b.N; i++ {
_, err := json.Marshal(t2)
if err != nil {
fmt.Println("system convert error")
return
}
}
}