Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

feat: add buffer pool #133

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

tiennampham23
Copy link

No description provided.

@tiennampham23 tiennampham23 requested a review from a team as a code owner December 5, 2023 16:16
@eitu5ami
Copy link
Contributor

eitu5ami commented Dec 5, 2023

@tiennampham23 Thank you for your contribution! Could you provide some context behind this change?

@tiennampham23
Copy link
Author

@eitu5ami I apologize for missing the description earlier. The buffer pool is used to prevent the allocation of a large number of byte slices when uploading a significant amount of data. We utilize the allocated buffer pool to store the response bytes.

If we do not use the buffer pool, the reserve proxy will allocate the byte slices with every request, and the garbage collection will clear it afterward. As the number of requests increases, the memory usage will peak at the time the garbage collector is running.

As the documentation

// BufferPool optionally specifies a buffer pool to
// get byte slices for use by io.CopyBuffer when
// copying HTTP response bodies.
BufferPool BufferPool



if p.BufferPool != nil {
   buf = p.BufferPool.Get()
   defer p.BufferPool.Put(buf)
}

@eitu5ami
Copy link
Contributor

@tiennampham23 I will work on it once I merge a few of our outstanding changes. I will keep you posted.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants