1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2025-09-16 09:36:18 +02:00

Improve download buffer calibration

This commit is contained in:
DarthSim
2019-03-11 14:30:00 +06:00
parent 67bbf14ba4
commit 1972c21783

View File

@@ -47,14 +47,7 @@ func (p *bufPool) calibrateAndClean() {
score := p.calls[pos]
p.callInd = 0
p.maxSize = 64
for {
if p.maxSize > score {
break
}
p.maxSize <<= 1
}
p.maxSize = p.normalizeSize(score)
p.defaultSize = maxInt(p.defaultSize, p.calls[0])
p.maxSize = maxInt(p.defaultSize, p.maxSize)
@@ -82,6 +75,8 @@ func (p *bufPool) Get(size int) *bytes.Buffer {
p.mutex.Lock()
defer p.mutex.Unlock()
size = p.normalizeSize(size)
minSize, maxSize, minInd, maxInd := -1, -1, -1, -1
for i := 0; i < len(p.buffers); i++ {
@@ -155,3 +150,7 @@ func (p *bufPool) Put(buf *bytes.Buffer) {
}
}
}
func (p *bufPool) normalizeSize(n int) int {
return (n/bytes.MinRead + 2) * bytes.MinRead
}