summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/fileserver/browse.go
diff options
context:
space:
mode:
authorDominik Braun <dominikbraun1997@web.de>2019-08-08 07:59:02 +0200
committerMatt Holt <mholt@users.noreply.github.com>2019-08-07 23:59:02 -0600
commit4950ce485f7d931890fcfd2ee287b6df1b5db435 (patch)
tree81cafb7b6f235d001c99cc5185118a8490d98458 /modules/caddyhttp/fileserver/browse.go
parentc8b0a97b1c2524f7486aef38b2cf78a93d7b98b0 (diff)
Part 1: Optimize using compiler's inliner (#2687)
* 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
Diffstat (limited to 'modules/caddyhttp/fileserver/browse.go')
-rw-r--r--modules/caddyhttp/fileserver/browse.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/caddyhttp/fileserver/browse.go b/modules/caddyhttp/fileserver/browse.go
index e0e6de2..91ebcd5 100644
--- a/modules/caddyhttp/fileserver/browse.go
+++ b/modules/caddyhttp/fileserver/browse.go
@@ -133,14 +133,16 @@ func (fsrv *FileServer) browseApplyQueryParams(w http.ResponseWriter, r *http.Re
}
func (fsrv *FileServer) browseWriteJSON(listing browseListing) (*bytes.Buffer, error) {
- buf := new(bytes.Buffer)
+ buf := bufPool.Get().(*bytes.Buffer)
err := json.NewEncoder(buf).Encode(listing.Items)
+ bufPool.Put(buf)
return buf, err
}
func (fsrv *FileServer) browseWriteHTML(listing browseListing) (*bytes.Buffer, error) {
- buf := new(bytes.Buffer)
+ buf := bufPool.Get().(*bytes.Buffer)
err := fsrv.Browse.template.Execute(buf, listing)
+ bufPool.Put(buf)
return buf, err
}