package main import ( "fmt" "github.com/bytedance/sonic" "testing" "time" ) var jsonData = `{ "name": "nginx", "namespace": "default", "replicas": 1, "status": "Available" }` func TestJsonUnmarshal(t *testing.T) { // 计算时间 startAt := time.Now() for i := 0; i < 1000000; i++ { var d Deployment err := sonic.Unmarshal([]byte(jsonData), &d) if err != nil { fmt.Printf("Error unmarshalling JSON: %v\n", err) return } } fmt.Printf("Unmarshal time: %v\n", time.Since(startAt)) } func TestJsonUnmarshalOnce(t *testing.T) { // 计算时间 startAt := time.Now() var d Deployment err := sonic.Unmarshal([]byte(jsonData), &d) if err != nil { fmt.Printf("Error unmarshalling JSON: %v\n", err) return } fmt.Printf("Unmarshal time: %v\n", time.Since(startAt)) } func TestJsonMarshal(t *testing.T) { for i := 0; i < 1000000; i++ { var d Deployment err := sonic.Unmarshal([]byte(jsonData), &d) if err != nil { fmt.Printf("Error unmarshalling JSON: %v\n", err) return } _, err = sonic.Marshal(d) if err != nil { fmt.Printf("Error marshalling JSON: %v\n", err) return } } }