diff options
author | Bjørn Erik Pedersen <[email protected]> | 2019-10-11 13:55:46 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2019-10-13 12:36:17 +0200 |
commit | 653e6856ea1cfc60cc16733807d23b302dbe4bd5 (patch) | |
tree | c77d48f3ec9a07a47ae5a8d53b2cf7b6c459f66f /hugolib/pages_test.go | |
parent | f4f566edf4bd6a590cf9cdbd5cfc0026ecd93b14 (diff) | |
download | hugo-653e6856ea1cfc60cc16733807d23b302dbe4bd5.tar.gz hugo-653e6856ea1cfc60cc16733807d23b302dbe4bd5.zip |
resources/page: Use binary search in Pages.Prev/Next if possible
This is obviously much faster for lager data sets:
```bash
name old time/op new time/op delta
SearchPage/ByWeight-100-4 267ns ± 4% 272ns ± 5% ~ (p=0.457 n=4+4)
SearchPage/ByWeight-5000-4 10.8µs ± 3% 1.2µs ± 2% -88.99% (p=0.029 n=4+4)
SearchPage/ByWeight-10000-4 21.1µs ± 1% 1.4µs ±11% -93.28% (p=0.029 n=4+4)
```
See #4500
Diffstat (limited to 'hugolib/pages_test.go')
-rw-r--r-- | hugolib/pages_test.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hugolib/pages_test.go b/hugolib/pages_test.go index 371ffe8f2..6a371b421 100644 --- a/hugolib/pages_test.go +++ b/hugolib/pages_test.go @@ -63,7 +63,7 @@ func BenchmarkPagesPrevNext(b *testing.B) { Variant{"Pages.Shuffled.Prev", shufflePages, func(p page.Page, pages page.Pages) { pages.Prev(p) }}, Variant{"Pages.ByTitle.Next", func(pages page.Pages) page.Pages { return pages.ByTitle() }, func(p page.Page, pages page.Pages) { pages.Next(p) }}, } { - for _, numPages := range []int{100, 300, 900, 5000} { + for _, numPages := range []int{300, 5000} { b.Run(fmt.Sprintf("%s-pages-%d", variant.name, numPages), func(b *testing.B) { b.StopTimer() builder := newPagesPrevNextTestSite(b, numPages) |