123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- // +build use_codec
- package benchmark
- import (
- "testing"
- "github.com/ugorji/go/codec"
- )
- func BenchmarkCodec_Unmarshal_M(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- dec := codec.NewDecoderBytes(nil, h)
- b.SetBytes(int64(len(largeStructText)))
- for i := 0; i < b.N; i++ {
- var s LargeStruct
- dec.ResetBytes(largeStructText)
- if err := dec.Decode(&s); err != nil {
- b.Error(err)
- }
- }
- }
- func BenchmarkCodec_Unmarshal_S(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- dec := codec.NewDecoderBytes(nil, h)
- b.SetBytes(int64(len(smallStructText)))
- for i := 0; i < b.N; i++ {
- var s LargeStruct
- dec.ResetBytes(smallStructText)
- if err := dec.Decode(&s); err != nil {
- b.Error(err)
- }
- }
- }
- func BenchmarkCodec_Marshal_S(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- var l int64
- for i := 0; i < b.N; i++ {
- enc.ResetBytes(&out)
- if err := enc.Encode(&smallStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = nil
- }
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_M(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- var l int64
- for i := 0; i < b.N; i++ {
- enc.ResetBytes(&out)
- if err := enc.Encode(&largeStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = nil
- }
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_L(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- var l int64
- for i := 0; i < b.N; i++ {
- enc.ResetBytes(&out)
- if err := enc.Encode(&xlStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = nil
- }
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_S_Reuse(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- var l int64
- for i := 0; i < b.N; i++ {
- enc.ResetBytes(&out)
- if err := enc.Encode(&smallStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = out[:0]
- }
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_M_Reuse(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- var l int64
- for i := 0; i < b.N; i++ {
- enc.ResetBytes(&out)
- if err := enc.Encode(&largeStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = out[:0]
- }
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_L_Reuse(b *testing.B) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- var l int64
- for i := 0; i < b.N; i++ {
- enc.ResetBytes(&out)
- if err := enc.Encode(&xlStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = out[:0]
- }
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_S_Parallel(b *testing.B) {
- var l int64
- b.RunParallel(func(pb *testing.PB) {
- var out []byte
- var h codec.Handle = new(codec.JsonHandle)
- enc := codec.NewEncoderBytes(&out, h)
- for pb.Next() {
- enc.ResetBytes(&out)
- if err := enc.Encode(&smallStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = nil
- }
- })
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_M_Parallel(b *testing.B) {
- var l int64
- b.RunParallel(func(pb *testing.PB) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- for pb.Next() {
- enc.ResetBytes(&out)
- if err := enc.Encode(&largeStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = nil
- }
- })
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_L_Parallel(b *testing.B) {
- var l int64
- b.RunParallel(func(pb *testing.PB) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- for pb.Next() {
- enc.ResetBytes(&out)
- if err := enc.Encode(&xlStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = nil
- }
- })
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_S_Parallel_Reuse(b *testing.B) {
- var l int64
- b.RunParallel(func(pb *testing.PB) {
- var out []byte
- var h codec.Handle = new(codec.JsonHandle)
- enc := codec.NewEncoderBytes(&out, h)
- for pb.Next() {
- enc.ResetBytes(&out)
- if err := enc.Encode(&smallStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = out[:0]
- }
- })
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_M_Parallel_Reuse(b *testing.B) {
- var l int64
- b.RunParallel(func(pb *testing.PB) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- for pb.Next() {
- enc.ResetBytes(&out)
- if err := enc.Encode(&largeStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = out[:0]
- }
- })
- b.SetBytes(l)
- }
- func BenchmarkCodec_Marshal_L_Parallel_Reuse(b *testing.B) {
- var l int64
- b.RunParallel(func(pb *testing.PB) {
- var h codec.Handle = new(codec.JsonHandle)
- var out []byte
- enc := codec.NewEncoderBytes(&out, h)
- for pb.Next() {
- enc.ResetBytes(&out)
- if err := enc.Encode(&xlStructData); err != nil {
- b.Error(err)
- }
- l = int64(len(out))
- out = out[:0]
- }
- })
- b.SetBytes(l)
- }
|