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
Baselinefeature. Do you want to commit something before publishing?
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)]