Parallel benchmarks for go/codec.

This commit is contained in:
Victor Starodub
2016-03-04 11:44:07 +10:00
parent e8a814a5b5
commit 5f55e7254a
+86 -120
View File
@@ -150,164 +150,130 @@ func BenchmarkCodec_Marshal_L_Reuse(b *testing.B) {
b.SetBytes(l)
}
/*
func BenchmarkCodec_Marshal_S_Parallel(b *testing.B) {
var l int64
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) {
var out []byte
var h codec.Handle = new(codec.JsonHandle)
enc := codec.NewEncoderBytes(&out, h)
for pb.Next() {
data, err := ffjson.MarshalFast(&largeStructData)
if err != nil {
enc.ResetBytes(&out)
if err := enc.Encode(&smallStructData); err != nil {
b.Error(err)
}
l = int64(len(data))
ffjson.Pool(data)
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_SmallRequestPoolFF(b *testing.B) {
func BenchmarkCodec_Marshal_L_Parallel(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) {
var h codec.Handle = new(codec.JsonHandle)
var out []byte
enc := codec.NewEncoderBytes(&out, h)
for pb.Next() {
data, err := ffjson.MarshalFast(&smallStructData)
if err != nil {
enc.ResetBytes(&out)
if err := enc.Encode(&xlStructData); err != nil {
b.Error(err)
}
l = int64(len(data))
ffjson.Pool(data)
l = int64(len(out))
out = nil
}
})
b.SetBytes(l)
}
func BenchmarkCodec_Marshal_SmallRequestFFParallel(b *testing.B) {
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() {
data, err := ffjson.MarshalFast(&smallStructData)
if err != nil {
enc.ResetBytes(&out)
if err := enc.Encode(&smallStructData); err != nil {
b.Error(err)
}
l = int64(len(data))
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_RequestFFParallel(b *testing.B) {
func BenchmarkCodec_Marshal_L_Parallel_Reuse(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) {
var h codec.Handle = new(codec.JsonHandle)
var out []byte
enc := codec.NewEncoderBytes(&out, h)
for pb.Next() {
data, err := ffjson.MarshalFast(&xlStructData)
if err != nil {
enc.ResetBytes(&out)
if err := enc.Encode(&xlStructData); err != nil {
b.Error(err)
}
l = int64(len(data))
l = int64(len(out))
out = out[:0]
}
})
b.SetBytes(l)
}
*/