forked from mirror/go-json
Add benchmark for testing #171
This commit is contained in:
parent
7d4316b94a
commit
97020a9ad7
|
@ -0,0 +1,47 @@
|
||||||
|
package benchmark
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io/ioutil"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
gojson "github.com/goccy/go-json"
|
||||||
|
)
|
||||||
|
|
||||||
|
type coordinate struct {
|
||||||
|
X float64 `json:"x"`
|
||||||
|
Y float64 `json:"y"`
|
||||||
|
Z float64 `json:"z"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Opts map[string]interface{} `json:"opts"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type testStruct struct {
|
||||||
|
Coordinates []coordinate `json:"coordinates"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_DecodeHugeDataGoJSON(b *testing.B) {
|
||||||
|
dat, err := ioutil.ReadFile("./bench.json")
|
||||||
|
if err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
b.ReportAllocs()
|
||||||
|
jobj := testStruct{}
|
||||||
|
if err := gojson.Unmarshal(dat, &jobj); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Benchmark_DecodeHugeDataEncodingJSON(b *testing.B) {
|
||||||
|
dat, err := ioutil.ReadFile("./bench.json")
|
||||||
|
if err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
b.ReportAllocs()
|
||||||
|
jobj := testStruct{}
|
||||||
|
if err := json.Unmarshal(dat, &jobj); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue