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
							committed by
							
								 Matt Holt
								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