mirror of
https://github.com/netbirdio/easyjson.git
synced 2026-05-22 18:44:42 -07:00
Added a benchmark for github.com/ugorji/go/codec . Consistent naming for benchmarks.
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
.root
|
||||
*_easyjson.go
|
||||
@@ -6,7 +6,7 @@ all: test
|
||||
|
||||
.root/src/$(PKG):
|
||||
mkdir -p $@
|
||||
ln -st $@ $$PWD/*
|
||||
for i in $$PWD/* ; do ln -s $$i $@/`basename $$i` ; done
|
||||
|
||||
root: .root/src/$(PKG)
|
||||
|
||||
@@ -25,9 +25,10 @@ generate: root build
|
||||
|
||||
test: generate root
|
||||
go test $(PKG)/{tests,jlexer,gen}
|
||||
@go test -benchmem -tags use_easyjson -bench . $(PKG)/benchmark
|
||||
@go test -benchmem -bench . $(PKG)/benchmark
|
||||
@go test -benchmem -tags use_ffjson -bench . $(PKG)/benchmark
|
||||
@go test -benchmem -tags use_easyjson -bench . $(PKG)/benchmark
|
||||
@go test -benchmem -tags use_codec -bench . $(PKG)/benchmark
|
||||
benchmark/ujson.sh
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,313 @@
|
||||
// +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_RequestFF(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_SmallRequestFF(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&smallStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_RequestFFPool(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_XLRequestFF(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_XLRequestFFPool(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_XLRequestFFPoolParallel(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
func BenchmarkCodec_Marshal_RequestFFPoolParallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
})
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_SmallRequestPoolFF(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&smallStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_SmallRequestPoolFFParallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
data, err := ffjson.MarshalFast(&smallStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
})
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_SmallRequestFFParallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
data, err := ffjson.MarshalFast(&smallStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
})
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_RequestFFParallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
})
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkCodec_Marshal_XLRequestFFParallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
})
|
||||
b.SetBytes(l)
|
||||
}
|
||||
*/
|
||||
File diff suppressed because it is too large
Load Diff
+20
-20
@@ -1,4 +1,4 @@
|
||||
// +build !use_easyjson,!use_ffjson
|
||||
// +build !use_easyjson,!use_ffjson,!use_codec
|
||||
|
||||
package benchmark
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func BenchmarkUnmarshalRequestStd(b *testing.B) {
|
||||
func BenchmarkStd_Unmarshal_M(b *testing.B) {
|
||||
b.SetBytes(int64(len(largeStructText)))
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s LargeStruct
|
||||
@@ -18,7 +18,18 @@ func BenchmarkUnmarshalRequestStd(b *testing.B) {
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkMarshalRequestStd(b *testing.B) {
|
||||
func BenchmarkStd_Unmarshal_S(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s Entities
|
||||
err := json.Unmarshal(smallStructText, &s)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
}
|
||||
b.SetBytes(int64(len(smallStructText)))
|
||||
}
|
||||
|
||||
func BenchmarkStd_Marshal_M(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := json.Marshal(&largeStructData)
|
||||
@@ -30,7 +41,7 @@ func BenchmarkMarshalRequestStd(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestStd(b *testing.B) {
|
||||
func BenchmarkStd_Marshal_L(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := json.Marshal(&xlStructData)
|
||||
@@ -42,7 +53,7 @@ func BenchmarkMarshalXLRequestStd(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalRequestStdParallel(b *testing.B) {
|
||||
func BenchmarkStd_Marshal_M_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
@@ -56,7 +67,7 @@ func BenchmarkMarshalRequestStdParallel(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestStdParallel(b *testing.B) {
|
||||
func BenchmarkStd_Marshal_L_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
@@ -70,18 +81,7 @@ func BenchmarkMarshalXLRequestStdParallel(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkUnmarshalSmallRequestStd(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s Entities
|
||||
err := json.Unmarshal(smallStructText, &s)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
}
|
||||
b.SetBytes(int64(len(smallStructText)))
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestStd(b *testing.B) {
|
||||
func BenchmarkStd_Marshal_S(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := json.Marshal(&smallStructData)
|
||||
@@ -93,7 +93,7 @@ func BenchmarkMarshalSmallRequestStd(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestStdParallel(b *testing.B) {
|
||||
func BenchmarkStd_Marshal_S_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
@@ -107,7 +107,7 @@ func BenchmarkMarshalSmallRequestStdParallel(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalToWriterStd(b *testing.B) {
|
||||
func BenchmarkStd_Marshal_M_ToWriter(b *testing.B) {
|
||||
enc := json.NewEncoder(&DummyWriter{})
|
||||
for i := 0; i < b.N; i++ {
|
||||
err := enc.Encode(&largeStructData)
|
||||
|
||||
+23
-23
@@ -9,7 +9,7 @@ import (
|
||||
"github.com/mailru/easyjson/jwriter"
|
||||
)
|
||||
|
||||
func BenchmarkUnmarshalRequestEJ(b *testing.B) {
|
||||
func BenchmarkEJ_Unmarshal_M(b *testing.B) {
|
||||
b.SetBytes(int64(len(largeStructText)))
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s LargeStruct
|
||||
@@ -20,7 +20,19 @@ func BenchmarkUnmarshalRequestEJ(b *testing.B) {
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkMarshalRequestEJ(b *testing.B) {
|
||||
func BenchmarkEJ_Unmarshal_S(b *testing.B) {
|
||||
b.SetBytes(int64(len(smallStructText)))
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s Entities
|
||||
err := s.UnmarshalJSON(smallStructText)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkEJ_Marshal_M(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := easyjson.Marshal(&largeStructData)
|
||||
@@ -32,7 +44,7 @@ func BenchmarkMarshalRequestEJ(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestEJ(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_L(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := easyjson.Marshal(&xlStructData)
|
||||
@@ -44,7 +56,7 @@ func BenchmarkMarshalXLRequestEJ(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestToWriterEJ(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_L_ToWriter(b *testing.B) {
|
||||
var l int64
|
||||
out := &DummyWriter{}
|
||||
for i := 0; i < b.N; i++ {
|
||||
@@ -60,7 +72,7 @@ func BenchmarkMarshalXLRequestToWriterEJ(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
|
||||
}
|
||||
func BenchmarkMarshalRequestEJParallel(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_M_Parallel(b *testing.B) {
|
||||
b.SetBytes(int64(len(largeStructText)))
|
||||
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
@@ -73,7 +85,7 @@ func BenchmarkMarshalRequestEJParallel(b *testing.B) {
|
||||
})
|
||||
}
|
||||
|
||||
func BenchmarkMarshalToWriterEJ(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_M_ToWriter(b *testing.B) {
|
||||
var l int64
|
||||
out := &DummyWriter{}
|
||||
for i := 0; i < b.N; i++ {
|
||||
@@ -89,7 +101,7 @@ func BenchmarkMarshalToWriterEJ(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
|
||||
}
|
||||
func BenchmarkMarshalRequestToWriterEJParallel(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_M_ToWriter_Parallel(b *testing.B) {
|
||||
out := &DummyWriter{}
|
||||
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
@@ -111,7 +123,7 @@ func BenchmarkMarshalRequestToWriterEJParallel(b *testing.B) {
|
||||
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestEJParallel(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_L_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
@@ -125,7 +137,7 @@ func BenchmarkMarshalXLRequestEJParallel(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestToWriterEJParallel(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_L_ToWriter_Parallel(b *testing.B) {
|
||||
out := &DummyWriter{}
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
var l int64
|
||||
@@ -145,19 +157,7 @@ func BenchmarkMarshalXLRequestToWriterEJParallel(b *testing.B) {
|
||||
})
|
||||
}
|
||||
|
||||
func BenchmarkUnmarshalSmallRequestEJ(b *testing.B) {
|
||||
b.SetBytes(int64(len(smallStructText)))
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s Entities
|
||||
err := s.UnmarshalJSON(smallStructText)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestEJ(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_S(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := smallStructData.MarshalJSON()
|
||||
@@ -169,7 +169,7 @@ func BenchmarkMarshalSmallRequestEJ(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestEJParallel(b *testing.B) {
|
||||
func BenchmarkEJ_Marshal_S_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
|
||||
+96
-96
@@ -8,7 +8,7 @@ import (
|
||||
"github.com/pquerna/ffjson/ffjson"
|
||||
)
|
||||
|
||||
func BenchmarkUnmarshalRequestFF(b *testing.B) {
|
||||
func BenchmarkFF_Unmarshal_M(b *testing.B) {
|
||||
b.SetBytes(int64(len(largeStructText)))
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s LargeStruct
|
||||
@@ -19,96 +19,7 @@ func BenchmarkUnmarshalRequestFF(b *testing.B) {
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkMarshalRequestFF(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestFF(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&smallStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalRequestFFPool(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestFF(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestFFPool(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestFFPoolParallel(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
func BenchmarkMarshalRequestFFPoolParallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
})
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkUnmarshalSmallRequestFF(b *testing.B) {
|
||||
func BenchmarkFF_Unmarshal_S(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
var s Entities
|
||||
err := ffjson.UnmarshalFast(smallStructText, &s)
|
||||
@@ -119,7 +30,96 @@ func BenchmarkUnmarshalSmallRequestFF(b *testing.B) {
|
||||
b.SetBytes(int64(len(smallStructText)))
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestPoolFF(b *testing.B) {
|
||||
func BenchmarkFF_Marshal_M(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkFF_Marshal_S(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&smallStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkFF_Marshal_M_Pool(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkFF_Marshal_L(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkFF_Marshal_L_Pool(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkFF_Marshal_L_Pool_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&xlStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
b.SetBytes(l)
|
||||
}
|
||||
func BenchmarkFF_Marshal_M_Pool_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
data, err := ffjson.MarshalFast(&largeStructData)
|
||||
if err != nil {
|
||||
b.Error(err)
|
||||
}
|
||||
l = int64(len(data))
|
||||
ffjson.Pool(data)
|
||||
}
|
||||
})
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkFF_Marshal_S_Pool(b *testing.B) {
|
||||
var l int64
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, err := ffjson.MarshalFast(&smallStructData)
|
||||
@@ -132,7 +132,7 @@ func BenchmarkMarshalSmallRequestPoolFF(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestPoolFFParallel(b *testing.B) {
|
||||
func BenchmarkFF_Marshal_S_Pool_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
@@ -147,7 +147,7 @@ func BenchmarkMarshalSmallRequestPoolFFParallel(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalSmallRequestFFParallel(b *testing.B) {
|
||||
func BenchmarkFF_Marshal_S_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
@@ -161,7 +161,7 @@ func BenchmarkMarshalSmallRequestFFParallel(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalRequestFFParallel(b *testing.B) {
|
||||
func BenchmarkFF_Marshal_M_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
@@ -175,7 +175,7 @@ func BenchmarkMarshalRequestFFParallel(b *testing.B) {
|
||||
b.SetBytes(l)
|
||||
}
|
||||
|
||||
func BenchmarkMarshalXLRequestFFParallel(b *testing.B) {
|
||||
func BenchmarkFF_Marshal_L_Parallel(b *testing.B) {
|
||||
var l int64
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
|
||||
Reference in New Issue
Block a user