diff --git a/go.mod b/go.mod index 3f3dd81507f630fcab046a1394731cfc04e6713a..b596a7f4ec018ec09971cadb68ead43af7934c5f 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/json-iterator/go v1.1.12 github.com/mailgun/multibuf v0.2.0 github.com/stretchr/testify v1.9.0 + github.com/valyala/bytebufferpool v1.0.0 golang.org/x/net v0.22.0 golang.org/x/sync v0.6.0 ) diff --git a/go.sum b/go.sum index 137899251a8b572b6e9c721e05cb1ef368307c49..3db524eeeb9298babdc25843be3a3860282baea6 100644 --- a/go.sum +++ b/go.sum @@ -33,6 +33,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= golang.org/x/exp v0.0.0-20230206171751-46f607a40771 h1:xP7rWLUr1e1n2xkK5YB4LI0hPEy3LJC6Wk+D4pGlOJg= golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= diff --git a/pkg/jjson/json.go b/pkg/jjson/json.go index 8d685b6946aa392c2db522ada7c6defd1d02e964..fe3043f8c6ec66d71352736bc31ca32efe8374cb 100644 --- a/pkg/jjson/json.go +++ b/pkg/jjson/json.go @@ -6,6 +6,7 @@ import ( "io" jsoniter "github.com/json-iterator/go" + "github.com/valyala/bytebufferpool" ) var encPool = NewPool() @@ -17,9 +18,9 @@ var jConfig = jsoniter.Config{ }.Froze() func MarshalAndEncode(w io.Writer, v any) error { - d := encPool.Get() - defer encPool.Put(d) - err := Encode(w, v) + d := bytebufferpool.Get() + defer bytebufferpool.Put(d) + err := Encode(d, v) if err != nil { return err }