package jsoniter import ( "testing" "os" "encoding/json" "io/ioutil" ) func Test_large_file(t *testing.T) { file, err := os.Open("/tmp/large-file.json") if err != nil { t.Fatal(err) } iter := Parse(file, 4096) count := 0 for iter.ReadArray() { iter.Skip() count++ } if count != 11351 { t.Fatal(count) } } func Benchmark_jsoniter_large_file(b *testing.B) { b.ReportAllocs() for n := 0; n < b.N; n++ { file, _ := os.Open("/tmp/large-file.json") iter := Parse(file, 4096) count := 0 for iter.ReadArray() { iter.Skip() count++ } file.Close() } } func Benchmark_json_large_file(b *testing.B) { b.ReportAllocs() for n := 0; n < b.N; n++ { file, _ := os.Open("/tmp/large-file.json") bytes, _ := ioutil.ReadAll(file) file.Close() result := []struct{}{} json.Unmarshal(bytes, &result) } }