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
tiennampham23 wants to merge 2 commits into0xProject:mainfrom
tiennampham23:main
Open

feat: add buffer pool#133
tiennampham23 wants to merge 2 commits into0xProject:mainfrom
tiennampham23:main

Conversation

@tiennampham23
Copy link
Copy Markdown

No description provided.

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

eitu5ami commented Dec 5, 2023

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

@tiennampham23
Copy link
Copy Markdown
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
Copy Markdown
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