mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Add benchmark for sort and reverse
This commit is contained in:
parent
aca0f60448
commit
5cf0aa2fc0
2 changed files with 69 additions and 4 deletions
16
bench.sh
16
bench.sh
|
@ -7,21 +7,29 @@
|
|||
# - Do the same for master
|
||||
# - then compare the two runs with benchcmp
|
||||
|
||||
if [ $# -ne 2 ]
|
||||
benchFilter=".*"
|
||||
|
||||
if (( $# < 2 ));
|
||||
then
|
||||
echo "USAGE: ./bench.sh <git-branch> <package-to-bench>"
|
||||
echo "USAGE: ./bench.sh <git-branch> <package-to-bench> (and <benchmark filter> (regexp, optional))"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [ $# -eq 3 ]; then
|
||||
benchFilter=$3
|
||||
fi
|
||||
|
||||
|
||||
BRANCH=$1
|
||||
PACKAGE=$2
|
||||
|
||||
git checkout $BRANCH
|
||||
go test -test.run=NONE -bench=".*" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-$BRANCH.txt
|
||||
go test -test.run=NONE -bench="$benchFilter" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-$BRANCH.txt
|
||||
|
||||
git checkout master
|
||||
go test -test.run=NONE -bench=".*" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-master.txt
|
||||
go test -test.run=NONE -bench="$benchFilter" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-master.txt
|
||||
|
||||
|
||||
benchcmp /tmp/bench-$PACKAGE-master.txt /tmp/bench-$PACKAGE-$BRANCH.txt
|
57
hugolib/pageSort_test.go
Normal file
57
hugolib/pageSort_test.go
Normal file
|
@ -0,0 +1,57 @@
|
|||
package hugolib
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/spf13/hugo/source"
|
||||
)
|
||||
|
||||
func TestPageSortReverse(t *testing.T) {
|
||||
p := createSortTestPages(10)
|
||||
assert.Equal(t, 0, p[0].FuzzyWordCount)
|
||||
assert.Equal(t, 9, p[9].FuzzyWordCount)
|
||||
p = p.Reverse()
|
||||
assert.Equal(t, 9, p[0].FuzzyWordCount)
|
||||
assert.Equal(t, 1, p[9].FuzzyWordCount)
|
||||
}
|
||||
|
||||
func BenchmarkSortByWeightAndReverse(b *testing.B) {
|
||||
|
||||
p := createSortTestPages(300)
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
p = p.ByWeight().Reverse()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func createSortTestPages(num int) Pages {
|
||||
pages := make(Pages, num)
|
||||
|
||||
for i := 0; i < num; i++ {
|
||||
pages[i] = &Page{
|
||||
Node: Node{
|
||||
URLPath: URLPath{
|
||||
Section: "z",
|
||||
URL: fmt.Sprintf("http://base/x/y/p%d.html", i),
|
||||
},
|
||||
Site: &SiteInfo{
|
||||
BaseURL: "http://base/",
|
||||
},
|
||||
},
|
||||
Source: Source{File: *source.NewFile(filepath.FromSlash(fmt.Sprintf("/x/y/p%d.md", i)))},
|
||||
}
|
||||
w := 5
|
||||
if i%2 == 0 {
|
||||
w = 10
|
||||
}
|
||||
pages[i].FuzzyWordCount = i
|
||||
pages[i].Weight = w
|
||||
}
|
||||
|
||||
return pages
|
||||
}
|
Loading…
Reference in a new issue