Comments (5)
tasty-bench/src/Test/Tasty/Bench.hs
Lines 1245 to 1249 in fd30b62
@AndreasPK I'm sorry, I don't quite follow, what exactly can SpecConstr specialise here?
Would passing GHC.Exts.SPEC
help?
from tasty-bench.
I checked Core of bytestring
benchmarks.
benchIndices_$s$wbenchLoop2
:: ByteString -> Word64# -> State# RealWorld -> State# RealWorld
benchIndices_$s$wbenchLoop2
= \ (x_s3Me :: ByteString)
(ww_s3Mh :: Word64#)
(eta_s3Mj :: State# RealWorld) ->
case ww_s3Mh of wild_X1 {
__DEFAULT ->
case seq#
(case x_s3Me of { BS ww1_s3NJ ww2_s3NK ww3_s3NL ->
case $weta1 ww1_s3NJ ww2_s3NK ww3_s3NL of wild2_i3hw {
Nothing -> Nothing;
Just x1_i3hx -> case x1_i3hx of { I# ipv_i3hc -> wild2_i3hw }
}
})
eta_s3Mj
of
{ (# ipv_i3sR, ipv1_i3sS #) ->
benchIndices_$s$wbenchLoop2
x_s3Me (subWord64# wild_X1 1##64) ipv_i3sR
};
0##64 -> eta_s3Mj
}
end
AFAIU the effect of specialization is that the function has been specialized to inline instance NFData (Maybe a)
. I think it's a good effect: indeed we'd rather have less overhead caused by benchLoop
.
from tasty-bench.
@AndreasPK what do you think about 9c86990? It seems to resolve the issue for bytestring
: now everything is as specialized as possible.
from tasty-bench.
@AndreasPK what do you think about 9c86990? It seems to resolve the issue for
bytestring
: now everything is as specialized as possible.
Using SPEC isn't something I had considered but should work. I that's the only way tasty-bench runs into the SpecConstr issue that's probably good enough.
from tasty-bench.
Thanks for the report and for the analysis, @AndreasPK! I'll merge 9c86990 then.
from tasty-bench.
Related Issues (20)
- When running benchmarks against a baseline, it is unclear whether the baseline was compared against HOT 1
- Graceful degradation for Windows without chcp 65001
- Misleadling verbalization of speed up / slow down HOT 4
- Think about benchmarking of linear and unlifted data HOT 1
- Even less dependencies? HOT 8
- CSV reporter doesn't show baseline comparison HOT 5
- Benchmarking a memoized function HOT 2
- Estimate standard deviation for memory statistics HOT 2
- Output of the benchmark function is retained in memory HOT 11
- Custom, ad-hoc metrics? HOT 4
- Allow running benchmarks a given number of times. HOT 8
- Benchmarks sometimes get stuck HOT 3
- Consider benchmarking until GCStats stabilise when given +RTS -T HOT 1
- Excessive inlining may optimize away the function to benchmark HOT 12
- How to remove "All" from every entry HOT 6
- Subtract benchmark baseline HOT 6
- Unhandled resource exception on pure IO action HOT 6
- Print more digits? HOT 6
- Some benchmarks written for `criterion` just complete immediately with `tasty-bench`. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tasty-bench.