Skip to content

make Rank() inlineable#201

Merged
lemire merged 1 commit intobits-and-blooms:masterfrom
gaissmai:fb-rank
Mar 10, 2025
Merged

make Rank() inlineable#201
lemire merged 1 commit intobits-and-blooms:masterfrom
gaissmai:fb-rank

Conversation

@gaissmai
Copy link
Copy Markdown
Contributor

@gaissmai gaissmai commented Mar 9, 2025

old: ./bitset.go:1388:6: cannot inline (*BitSet).Rank: function too complex: cost 106 exceeds budget 80
new: ./bitset.go:1388:6: can inline (*BitSet).Rank with cost 75

$ benchstat rank.old rank.new
goos: linux
goarch: amd64
pkg: github.com/bits-and-blooms/bitset
cpu: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
│ rank.old │ rank.new │
│ sec/op │ sec/op vs base │
Rank/Rank(1) 3.168n ± 1% 1.232n ± 2% -61.10% (p=0.002 n=6)
Rank/Rank(20) 3.165n ± 0% 1.224n ± 1% -61.34% (p=0.002 n=6)
Rank/Rank(50) 3.169n ± 2% 1.252n ± 2% -60.50% (p=0.002 n=6)
Rank/Rank(100) 3.607n ± 2% 2.371n ± 1% -34.28% (p=0.002 n=6)
Rank/Rank(200) 4.492n ± 0% 3.594n ± 0% -20.00% (p=0.002 n=6)
Rank/Rank(500) 6.010n ± 1% 4.806n ± 0% -20.03% (p=0.002 n=6)
Rank/Rank(1000) 9.538n ± 0% 7.724n ± 0% -19.02% (p=0.002 n=6)
Rank/Rank(10000) 77.26n ± 1% 56.96n ± 2% -26.26% (p=0.002 n=6)
Rank/Rank(20000) 145.9n ± 2% 103.6n ± 0% -28.99% (p=0.002 n=6)
Rank/Rank(50000) 351.2n ± 0% 244.2n ± 0% -30.48% (p=0.002 n=6)
Rank/Rank(100000) 699.6n ± 0% 478.5n ± 5% -31.60% (p=0.002 n=6)
Rank/Rank(200000) 699.1n ± 0% 478.3n ± 0% -31.59% (p=0.002 n=6)
geomean 24.91n 15.53n -37.66%

old: ./bitset.go:1388:6: cannot inline (*BitSet).Rank: function too complex: cost 106 exceeds budget 80
new: ./bitset.go:1388:6: can inline (*BitSet).Rank with cost 75

$ benchstat rank.old rank.new
goos: linux
goarch: amd64
pkg: github.com/bits-and-blooms/bitset
cpu: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
                  │  rank.old   │              rank.new              │
                  │   sec/op    │   sec/op     vs base               │
Rank/Rank(1)        3.168n ± 1%   1.232n ± 2%  -61.10% (p=0.002 n=6)
Rank/Rank(20)       3.165n ± 0%   1.224n ± 1%  -61.34% (p=0.002 n=6)
Rank/Rank(50)       3.169n ± 2%   1.252n ± 2%  -60.50% (p=0.002 n=6)
Rank/Rank(100)      3.607n ± 2%   2.371n ± 1%  -34.28% (p=0.002 n=6)
Rank/Rank(200)      4.492n ± 0%   3.594n ± 0%  -20.00% (p=0.002 n=6)
Rank/Rank(500)      6.010n ± 1%   4.806n ± 0%  -20.03% (p=0.002 n=6)
Rank/Rank(1000)     9.538n ± 0%   7.724n ± 0%  -19.02% (p=0.002 n=6)
Rank/Rank(10000)    77.26n ± 1%   56.96n ± 2%  -26.26% (p=0.002 n=6)
Rank/Rank(20000)    145.9n ± 2%   103.6n ± 0%  -28.99% (p=0.002 n=6)
Rank/Rank(50000)    351.2n ± 0%   244.2n ± 0%  -30.48% (p=0.002 n=6)
Rank/Rank(100000)   699.6n ± 0%   478.5n ± 5%  -31.60% (p=0.002 n=6)
Rank/Rank(200000)   699.1n ± 0%   478.3n ± 0%  -31.59% (p=0.002 n=6)
geomean             24.91n        15.53n       -37.66%
@lemire lemire merged commit 8e2adbd into bits-and-blooms:master Mar 10, 2025
27 checks passed
@gaissmai gaissmai deleted the fb-rank branch April 13, 2025 08:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants