It is cheaper to add unit testing for BenchmarkDotNet instead of implementing another full-featured benchmarking library.
Yeah good point, I guess we just add what we can to BenchmarkDotNet and see what happens. It's already getting pretty good traction in the CoreCLR/CoreFX GitHub issues.
By the way, right now I am implementing new algorithms that will choose wise amount of iteration. It will allow to run benchmarks really quickly and still have good accuracy. I'm almost finished, but such things takes a lot of time for testing.
That's cool, it'll stop things like this happening! https://twitter.com/ben_a_adams/status/678447298142199808
module BDNetFSharp.Program
open BenchmarkDotNet
open System.Reflection
type ArrayVsList () =
[<Params (10, 100)>]
member val public ColSize = 0 with get, set
[<Benchmark>]
member self.GetSquareArray () =
let value = self.ColSize / 2 in [| for _ in 0 .. self.ColSize -> value |].[value]
[<Benchmark>]
member self.GetSquareList () =
let value = self.ColSize / 2 in [for _ in 0 .. self.ColSize -> value ].[value]
let [<EntryPoint>] main args =
let competitionSwitch =
Assembly.GetExecutingAssembly().GetTypes()
|> Array.filter (fun t ->
t.GetMethods (BindingFlags.Instance ||| BindingFlags.Public )
|> Array.exists (fun m -> m.GetCustomAttributes (typeof<BenchmarkAttribute>, false) <> [||]))
|> BenchmarkSwitcher
competitionSwitch.Run args
0
Baseline
feature. Do you want to commit something before publishing?
BenchmarkStatResultExtenderTests
and spoil BaselineDeltaResultExtenderTest
, PerformanceUnitTest
, see diff with parent 140deccc.
can you access https://ci.appveyor.com/project/mattwarren/minibench-warren and see it?
Seems that is is a public page, everyone can see it.
new BenchmarkRunner().Run<BenchmarkProgram>();
works when you have a Benchmark with [Benchmark(Baseline = true)]
BenchmarkJitVersion
-> BenchmarkJitter
?
BenchmarkJitVersion
->BenchmarkJitter
Yeah makes sense to me. The only issue I see is that "Jitter" has another meaning (https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=jitter) which might confuse things