updated
This commit is contained in:
parent
146595ab79
commit
f4c3643e6d
|
@ -0,0 +1,40 @@
|
|||
|
||||
== Running benchmark ==
|
||||
? github.com/gtsteffaniak/filebrowser [no test files]
|
||||
? github.com/gtsteffaniak/filebrowser/auth [no test files]
|
||||
? github.com/gtsteffaniak/filebrowser/cmd [no test files]
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/diskcache 0.588s
|
||||
? github.com/gtsteffaniak/filebrowser/errors [no test files]
|
||||
? github.com/gtsteffaniak/filebrowser/files [no test files]
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/fileutils 0.212s
|
||||
2023/08/18 17:10:41 h: 401 <nil>
|
||||
2023/08/18 17:10:41 h: 401 <nil>
|
||||
2023/08/18 17:10:41 h: 401 <nil>
|
||||
2023/08/18 17:10:41 h: 401 <nil>
|
||||
2023/08/18 17:10:41 h: 401 <nil>
|
||||
2023/08/18 17:10:41 h: 401 <nil>
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/http 0.753s
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/img 0.362s
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/rules 0.182s
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/runner 0.198s
|
||||
goos: darwin
|
||||
goarch: arm64
|
||||
pkg: github.com/gtsteffaniak/filebrowser/search
|
||||
BenchmarkSearchAllIndexes-10 10 5802738 ns/op 2756774 B/op 42606 allocs/op
|
||||
BenchmarkFillIndex-10 10 4769329 ns/op 18512 B/op 453 allocs/op
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/search 0.356s
|
||||
? github.com/gtsteffaniak/filebrowser/settings [no test files]
|
||||
? github.com/gtsteffaniak/filebrowser/share [no test files]
|
||||
? github.com/gtsteffaniak/filebrowser/storage [no test files]
|
||||
? github.com/gtsteffaniak/filebrowser/storage/bolt [no test files]
|
||||
? github.com/gtsteffaniak/filebrowser/storage/bolt/importer [no test files]
|
||||
PASS
|
||||
ok github.com/gtsteffaniak/filebrowser/users 0.201s
|
||||
? github.com/gtsteffaniak/filebrowser/version [no test files]
|
|
@ -10,7 +10,7 @@ checkExit() {
|
|||
if command -v go &> /dev/null
|
||||
then
|
||||
printf "\n == Running benchmark == \n"
|
||||
go test -bench=. -benchmem ./...
|
||||
go test -bench=. -benchtime=10x -benchmem ./...
|
||||
checkExit
|
||||
else
|
||||
echo "ERROR: unable to perform tests"
|
||||
|
|
|
@ -61,7 +61,7 @@ func BenchmarkSearchAllIndexes(b *testing.B) {
|
|||
indexes = make(map[string][]string)
|
||||
|
||||
// Create mock data
|
||||
createMockData(500, 3) // 1000 dirs, 3 files per dir
|
||||
createMockData(50, 3) // 1000 dirs, 3 files per dir
|
||||
|
||||
// Generate 100 random search terms
|
||||
searchTerms := generateRandomSearchTerms(100)
|
||||
|
@ -71,10 +71,9 @@ func BenchmarkSearchAllIndexes(b *testing.B) {
|
|||
for i := 0; i < b.N; i++ {
|
||||
// Execute the SearchAllIndexes function
|
||||
for _, term := range searchTerms {
|
||||
SearchAllIndexes(term, "/")
|
||||
SearchAllIndexes(term, "/", "test")
|
||||
}
|
||||
}
|
||||
printBenchmarkResults(b)
|
||||
}
|
||||
|
||||
func BenchmarkFillIndex(b *testing.B) {
|
||||
|
@ -82,14 +81,13 @@ func BenchmarkFillIndex(b *testing.B) {
|
|||
b.ResetTimer()
|
||||
b.ReportAllocs()
|
||||
for i := 0; i < b.N; i++ {
|
||||
createMockData(10000, 10) // 1000 dirs, 3 files per dir
|
||||
createMockData(50, 3) // 1000 dirs, 3 files per dir
|
||||
}
|
||||
printBenchmarkResults(b)
|
||||
}
|
||||
|
||||
func createMockData(numDirs, numFilesPerDir int) {
|
||||
for i := 0; i < numDirs; i++ {
|
||||
dirName := "srv/" + getRandomTerm()
|
||||
dirName := generateRandomPath(rand.Intn(3) + 1)
|
||||
addToIndex("/", dirName, true)
|
||||
for j := 0; j < numFilesPerDir; j++ {
|
||||
fileName := "file-" + getRandomTerm() + getRandomExtension()
|
||||
|
@ -98,6 +96,15 @@ func createMockData(numDirs, numFilesPerDir int) {
|
|||
}
|
||||
}
|
||||
|
||||
func generateRandomPath(levels int) string {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
dirName := "srv"
|
||||
for i := 0; i < levels; i++ {
|
||||
dirName += "/" + getRandomTerm()
|
||||
}
|
||||
return dirName
|
||||
}
|
||||
|
||||
func getRandomTerm() string {
|
||||
wordbank := []string{
|
||||
"hi", "test", "other", "name",
|
||||
|
@ -161,11 +168,3 @@ func formatMemory(bytes int64) string {
|
|||
}
|
||||
return fmt.Sprintf("%d %s", bytes, sizes[i])
|
||||
}
|
||||
|
||||
// Output the benchmark results with human-readable units
|
||||
func printBenchmarkResults(b *testing.B) {
|
||||
averageTimePerIteration := b.Elapsed() / time.Duration(b.N)
|
||||
fmt.Printf("\nIterations : %d\n", b.N)
|
||||
fmt.Printf("Total time : %s\n", formatDuration(b.Elapsed()))
|
||||
fmt.Printf("Avg time per op : %s\n", formatDuration(averageTimePerIteration))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue