mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-25 08:27:39 +08:00
4950ce485f
* optimized functions for inlining * added note regarding ResponseWriterWrapper * optimzed browseWrite* methods for FileServer * created benchmarks for comparison * creating browseListing instance in each function * created benchmarks for openResponseWriter * removed benchmarks of old implementations * implemented sync.Pool for byte buffers * using global sync.Pool for writing JSON/HTML
55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
package fileserver
|
|
|
|
import (
|
|
"html/template"
|
|
"testing"
|
|
|
|
"github.com/caddyserver/caddy/v2"
|
|
)
|
|
|
|
func BenchmarkBrowseWriteJSON(b *testing.B) {
|
|
fsrv := new(FileServer)
|
|
fsrv.Provision(caddy.Context{})
|
|
listing := browseListing{
|
|
Name: "test",
|
|
Path: "test",
|
|
CanGoUp: false,
|
|
Items: make([]fileInfo, 100),
|
|
NumDirs: 42,
|
|
NumFiles: 420,
|
|
Sort: "",
|
|
Order: "",
|
|
ItemsLimitedTo: 42,
|
|
}
|
|
b.ResetTimer()
|
|
|
|
for n := 0; n < b.N; n++ {
|
|
fsrv.browseWriteJSON(listing)
|
|
}
|
|
}
|
|
|
|
func BenchmarkBrowseWriteHTML(b *testing.B) {
|
|
fsrv := new(FileServer)
|
|
fsrv.Provision(caddy.Context{})
|
|
fsrv.Browse = &Browse{
|
|
TemplateFile: "",
|
|
template: template.New("test"),
|
|
}
|
|
listing := browseListing{
|
|
Name: "test",
|
|
Path: "test",
|
|
CanGoUp: false,
|
|
Items: make([]fileInfo, 100),
|
|
NumDirs: 42,
|
|
NumFiles: 420,
|
|
Sort: "",
|
|
Order: "",
|
|
ItemsLimitedTo: 42,
|
|
}
|
|
b.ResetTimer()
|
|
|
|
for n := 0; n < b.N; n++ {
|
|
fsrv.browseWriteHTML(listing)
|
|
}
|
|
}
|