summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/fileserver/browse_test.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_test.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_test.go')
-rw-r--r--modules/caddyhttp/fileserver/browse_test.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/modules/caddyhttp/fileserver/browse_test.go b/modules/caddyhttp/fileserver/browse_test.go
new file mode 100644
index 0000000..b1f7092
--- /dev/null
+++ b/modules/caddyhttp/fileserver/browse_test.go
@@ -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)
+ }
+}