Almost five years after I initially released criterion, I'm delighted to announce a major release with a large number of appealing new features.
As always, you can install the latest goodness using cabal install criterion
, or fetch the source from github.
Please let me know if you find criterion useful!
New documentation
I built both a home page and a thorough tutorial for criterion. I've also extended the inline documentation and added a number of new examples.
All of the documentation lives in the github repo, so if you'd like to see something improved, please send a bug report or pull request.
New execution engine
Criterion's model of execution has evolved, becoming vastly more reliable and accurate. It can now measure events that take just a few hundred picoseconds.
benchmarking return ()
time 512.9 ps (512.8 ps .. 513.1 ps)
While almost all of the core types have changed, criterion should remain API-compatible with the vast majority of your benchmarking code.
New metrics
In addition to wall-clock time, criterion can now measure and regress on the following metrics:
- CPU time
- CPU cycles
- bytes allocated
- number of garbage collections
- number of bytes copied during GC
- wall-clock time spent in mutator threads
- CPU time spent running mutator threads
- wall-clock time spent doing GC
- CPU time spent doing GC
Linear regression
Criterion now supports linear regression of a number of metrics.
Here's a regression conducted using --regress cycles:iters
:
cycles: 1.000 R² (1.000 R² .. 1.000 R²)
iters 47.718 (47.657 .. 47.805)
The first line of the output is the R² goodness-of-fit measure for this regression, and the second is the number of CPU cycles (measured using the rdtsc
instruction) to execute the operation in question (integer division).
This next regression uses --regress allocated:iters
to measure the number of bytes allocated while constructing an IntMap
of 40,000 values.
allocated: 1.000 R² (1.000 R² .. 1.000 R²)
iters 4.382e7 (4.379e7 .. 4.384e7)
(That's a little under 42 megabytes.)
New outputs
While its support for active HTML has improved, criterion can also now output JSON and JUnit XML files.
New internals
Criterion has received its first spring cleaning, and is much easier to understand as a result.
Acknowledgments
I was inspired into some of this work by the efforts of the authors of the OCaml Core_bench package.
Thanks for the sharing. The Criterion is very useful to me
Great posting. I am searching for this
Thankful for this page. This is my year end topic for school project
It is a parsing combinator library that is “aimed particularly at dealing efficiently with network protocols and complicated text/binary
Thanks for the sharing.
Thankful for this page. This is my year end topic for school project
I am thankful to this site for posting such a wonderful and informative blog. Keep posting. accessories and more
So if you’d like to see something improved, please send a bug report or pull request.
Kelly | ceiling patterns
handyman near me is looking forward to exploring the latest goodness and continued excellence in benchmarking with Criterion! 👏🚀
Criterion’s model of execution has evolved, becoming vastly more reliable and accurate for Pasadena Drywall Contractors daily activities.
Kudos on the spring cleaning too! Looking forward to exploring the latest goodness. – Bridgeport
Laredo peeling wallpaper is looking forward to exploring the latest goodness. Great work!
Hey there! I’ve got some exciting news for you. You can now easily get your hands on the latest and greatest by installing criterion through cabal, or even grabbing the source from Git Hub. How cool is that?
Looking forward to exploring the latest goodness and continuing to find Criterion useful in my projects.
More power to your site!
Great site to visit. Thanks for sharing.
Looking forward to exploring its capabilities further.
I’m looking forward to investigating the latest awesomeness and continue to utilize Criterion in my projects.
Nice post! It’s very informative content you shared.
Criterion’s model of execution has evolved, becoming vastly more reliable and accurate. It can now measure what is purple drywall and events that take just a few hundred picoseconds.
Thanks for the info you shared here.Fencing near me
I can’t wait to learn more about criterion once i finish my ceiling texture drywall project. Thank you so much!
Congratulations on the major release of Criterion 1.0!
The first line of the output is the R² goodness-of-fit measure for this regression, and the second is the number of CPU cycles (measured using the rdtsc instruction) in Wilmington Landscaping
to execute the operation in question (integer division).
Thanks for sharing here some interesting content. Memphis Artificial Grass Experts Memphis TN
It’s nice seeing this great content here. concrete driveways
It’s nice seeing informative content here. gym near me
The criterion helps us how to repair drywall. It was very useful.
Great stuff you shared here. Awesome! concrete company
The new release of Criterion brings exciting updates, including a more reliable execution engine, additional metrics, and enhanced documentation. It’s great to see such improvements, especially for those who rely on accurate benchmarking. The new outputs and metrics make it even more versatile. Great work! Insight Property Appraisals
This is awesome! Thanks for sharing this here. Tradie Directory
Using criterion is one of the best things we did on https://www.drywallelpaso. It’s worth it!
That’s fantastic news! I’m excited to hear about the new features in the latest Criterion release. I’ll definitely be checking it out and updating to the latest version. Thanks for sharing! Security products
It may be too late for https://www.chimneysweepwilmington for the criterion experience, we feel amazed to see the benefits of using this program.
Great article indeed! Thanks for keeping us posted with informative content. patio screening