While I was profiling the performance of our application, I noticed that gzip.NewWriter and extending buffer space are consuming a of memory.
This is a feature request to update logic to pool Writer object and buffer for better performance, similar to other package, e.g, grpc-go, go-ethereum.
What solution would you like?
Use sync.Pool to share gzip writer object
What alternatives have you considered?
N/A
Do you have any additional context?
Here's the benchmark I run while I was contributing to other package, comparing performance of gzip-ing {"query":{"match_all":{}}}. Result might differ depending on the use case but I expect to see similar impact by the update.
Is your feature request related to a problem?
While I was profiling the performance of our application, I noticed that
gzip.NewWriter
and extending buffer space are consuming a of memory. This is a feature request to update logic to pool Writer object and buffer for better performance, similar to other package, e.g, grpc-go, go-ethereum.What solution would you like?
Use
sync.Pool
to share gzip writer objectWhat alternatives have you considered?
N/A
Do you have any additional context?
Here's the benchmark I run while I was contributing to other package, comparing performance of gzip-ing
{"query":{"match_all":{}}}
. Result might differ depending on the use case but I expect to see similar impact by the update.