Browse Source
* 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/HTMLmaster
Dominik Braun
6 years ago
committed by
Matt Holt
6 changed files with 104 additions and 10 deletions
@ -0,0 +1,12 @@ |
|||||
|
package encode |
||||
|
|
||||
|
import ( |
||||
|
"testing" |
||||
|
) |
||||
|
|
||||
|
func BenchmarkOpenResponseWriter(b *testing.B) { |
||||
|
enc := new(Encode) |
||||
|
for n := 0; n < b.N; n++ { |
||||
|
enc.openResponseWriter("test", nil) |
||||
|
} |
||||
|
} |
@ -0,0 +1,54 @@ |
|||||
|
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) |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue