refactor(misc): enhance performance on bytes pool, entrypoint, access log and route context handling

- Introduced benchmark tests for Entrypoint and ReverseProxy to evaluate performance.
- Updated Entrypoint's ServeHTTP method to improve route context management.
- Added new test file for entrypoint benchmarks and refined existing tests for route handling.
This commit is contained in:
yusing
2025-09-14 00:03:27 +08:00
parent e0d25e475c
commit f31b1b5ed3
11 changed files with 623 additions and 33 deletions

View File

@@ -21,13 +21,25 @@ func BenchmarkBytesPool_MakeSmall(b *testing.B) {
func BenchmarkBytesPool_GetLarge(b *testing.B) {
for b.Loop() {
bytesPool.Put(bytesPool.GetSized(1024 * 1024))
buf := bytesPool.GetSized(DropThreshold / 2)
buf[0] = 1
bytesPool.Put(buf)
}
}
func BenchmarkBytesPool_GetLargeUnsized(b *testing.B) {
for b.Loop() {
buf := slices.Grow(bytesPool.Get(), DropThreshold/2)
buf = append(buf, 1)
bytesPool.Put(buf)
}
}
func BenchmarkBytesPool_MakeLarge(b *testing.B) {
for b.Loop() {
_ = make([]byte, 1024*1024)
buf := make([]byte, DropThreshold/2)
buf[0] = 1
_ = buf
}
}
@@ -37,10 +49,9 @@ func BenchmarkBytesPool_GetAll(b *testing.B) {
}
}
func BenchmarkBytesPoolWithMemory(b *testing.B) {
pool := GetBytesPoolWithUniqueMemory()
func BenchmarkBytesPool_GetAllUnsized(b *testing.B) {
for i := range b.N {
pool.Put(slices.Grow(pool.Get(), sizes[i%len(sizes)]))
bytesPool.Put(slices.Grow(bytesPool.Get(), sizes[i%len(sizes)]))
}
}
@@ -49,3 +60,10 @@ func BenchmarkBytesPool_MakeAll(b *testing.B) {
_ = make([]byte, sizes[i%len(sizes)])
}
}
func BenchmarkBytesPoolWithMemory(b *testing.B) {
pool := GetBytesPoolWithUniqueMemory()
for i := range b.N {
pool.Put(slices.Grow(pool.Get(), sizes[i%len(sizes)]))
}
}