Changelog for criterion-measurement-0.2.3.0
0.2.3.0
- Drop support for pre-8.0 versions of GHC.
0.2.2.0
- Supporting building with all AArch64 platforms (not just Linux and macOS).
0.2.1.0
- Make the behavior of the benchmarking functions independent of the
-fspec-const-countlimit.
0.2.0.0
- Add a
measPeakMbAllocatedfield toMeasuredfor reporting maximum megabytes allocated. Naturally, this affects the behavior ofMeasured's{To,From}JSONandBinaryinstances.
0.1.4.0
- Fix a bug that occurred with GHC 9.2.4 or later that would cause incorrect measurements.
0.1.3.0
-
Change
criterion_rdtscto returnmach_absolute_timeon macOS. This is a portable way of returning the number of CPU cycles that works on both Intel- and ARM-based Macs. -
Change
criterion_gettimeto useclock_gettime_nsec_npinstead ofmach_absolute_timeon macOS. Whilemach_absolute_timehas nanosecond resolution on Intel-based Macs, this is not the case on ARM-based Macs, so the previousmach_absolute_time-based implementation would return incorrect timing results on Apple silicon.There are two minor consequences of this change:
-
criterion-measurementnow only supports macOS 10.02 or later, as that is the first version to haveclock_gettime_nsec_np. As macOS 10.02 was released in 2002, this is unlikely to affect users, but please speak up if this is a problem for you. -
As
clock_gettime_nsec_npdoes not require any special initialization code,criterion_inittimeis now a no-op on macOS. If you manually invoke thegetTimefunction in your code, however, it is still important that youinitializeTimebeforehand, as this is still required for the Windows implementation to work correctly.
-
0.1.2.0
- Ensure that
Criterion.Measurement.Types.Internalis always compiled with optimizations, even if thecriterion-measurementlibrary itself happens to be built with-O0or-fprof-auto. This is necessary to ensure that the inner benchmarking loop of criterion always finishes in a timely manner, even if the rest of the library is not fully optimized.
0.1.1.0
- Add
nfAppIOandwhnfAppIOfunctions, which take a function and its argument separately likenf/whnf, but whose function returnsIOlikenfIO/whnfIO. This is useful for benchmarking functions in which the bulk of the work is not bound by IO, but by pure computations that might otherwise be optimized away if the argument is known statically.
0.1.0.0
-
This is the first release of
criterion-measurement. The changelog notes below are copied from the notes for the correspondingcriterionrelease,criterion-1.5.0.0. -
Move the measurement functionality of
criterioninto a standalone package,criterion-measurement. In particular,cbits/andCriterion.Measurementare now incriterion-measurement, along with the relevant definitions ofCriterion.TypesandCriterion.Types.Internal(both of which are now under theCriterion.Measurement.*namespace). Consequently,criterionnow depends oncriterion-measurement.This will let other libraries (e.g. alternative statistical analysis front-ends) to import the measurement functionality alone as a lightweight dependency.
-
Fix a bug on macOS and Windows where using
runAndAnalyseand other lower-level benchmarking functions would result in an infinite loop.