Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 10 2016 13:26
    martinwoodward unassigned #296
  • Nov 10 2016 13:26
    martinwoodward unassigned #295
  • Nov 10 2016 13:26
    martinwoodward unassigned #293
  • Nov 10 2016 13:26
    martinwoodward unassigned #294
  • Nov 10 2016 13:26
    martinwoodward unassigned #292
  • Nov 10 2016 13:26
    martinwoodward unassigned #291
  • Nov 10 2016 13:26
    martinwoodward unassigned #288
  • Nov 10 2016 13:26
    martinwoodward unassigned #286
  • Nov 10 2016 13:26
    martinwoodward unassigned #287
  • Nov 10 2016 13:26
    martinwoodward unassigned #285
  • Nov 10 2016 13:26
    martinwoodward unassigned #281
  • Nov 10 2016 13:26
    martinwoodward unassigned #280
  • Nov 10 2016 13:26
    martinwoodward unassigned #278
  • Nov 10 2016 13:26
    martinwoodward unassigned #273
  • Nov 10 2016 13:26
    martinwoodward unassigned #271
  • Nov 10 2016 13:26
    martinwoodward unassigned #276
  • Nov 10 2016 13:26
    martinwoodward unassigned #272
  • Nov 10 2016 13:26
    martinwoodward unassigned #275
  • Nov 10 2016 13:26
    martinwoodward unassigned #268
  • Nov 10 2016 13:26
    martinwoodward unassigned #265
Jared Hester
@cloudRoutine
@kolektiv I didn't run into that issue, got a repo I can inspect?
Jared Hester
@cloudRoutine
@kolektiv this trival example should run without issue
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
Andrey Akinshin
@AndreyAkinshin
@cloudRoutine, I want to add special plugin type for plotting on the next week. It would be cool, if you can create PR with FSharp.Charting support.
Andrey Akinshin
@AndreyAkinshin
analysers.png
@mattwarren, check it out, I added BenchmarkEnvironmentAnalyser: PerfDotNet/BenchmarkDotNet@de01401
Andrew Cherry
@kolektiv
@cloudRoutine - see issue #67 :)
Andrey Akinshin
@AndreyAkinshin
Another project that uses BenchmarkDotNet: http://www.mapperator.net/Benchmark
Andrey Akinshin
@AndreyAkinshin
@mattwarren, I have implemented basic plot support (based on R script) in the refactoring branch.
Algo_MostSignificantBit-barplot.png
Matt Warren
@mattwarren
Looks cool
Tommy Long
@smudge202
I've been assigned some issues? ^^
Andrey Akinshin
@AndreyAkinshin
@smudge202, I thought that you want to implement CoreCLR support (you even have a local branch with some commits: https://github.com/smudge202/BenchmarkDotNet/commits/features/33-dnx-compatibility) Am I wrong?
@mattwarren, I am ready to publish v0.8.2, there is ChangeLog: https://github.com/PerfDotNet/BenchmarkDotNet/wiki/ChangeLog It includes your recent Baseline feature. Do you want to commit something before publishing?
Tommy Long
@smudge202
I'll take a look when I get the chance, but it's not very high on a fairly long list I'm afraid. We're not using Benchmarks as we couldn't find a good solution for our use cases.
Andrey Akinshin
@AndreyAkinshin
Ok, then I do it myself.
Matt Warren
@mattwarren
@AndreyAkinshin I just pushed one extra change (PerfDotNet/BenchmarkDotNet@9e16e8c) to make the Delta Result Extender a bit more robust. If that could go into 0.8.2 as well that would be cool.
BTW I think that the ChangeLog is a really nice idea. It also shows that BenchmarkDotNet is becoming a more mature OSS project, good job!
Andrey Akinshin
@AndreyAkinshin
@mattwarren, Ok, no problem. I will test the last develop version tonight and publish it.
Andrey Akinshin
@AndreyAkinshin
@mattwarren, your last merge contains errors, I can't build our solution in the develop branch.
You have removed my BenchmarkStatResultExtenderTests and spoil BaselineDeltaResultExtenderTest, PerformanceUnitTest, see diff with parent 140deccc.
Andrey Akinshin
@AndreyAkinshin
I made a rollback. Please, review it.
Matt Warren
@mattwarren
Uggh, I'm sorry about that. It's weird I had a problem with the merge, but I thought that I double-checked it by downloading the latest code and building it from scratch
Did you manage to fix it, or do you need me to do something?
Andrey Akinshin
@AndreyAkinshin
I already fixed it.
Matt Warren
@mattwarren
thanks
Andrey Akinshin
@AndreyAkinshin
It would be cool, if you will check that everything is fine in the develop branch.
Matt Warren
@mattwarren
BTW can you wait to release till tomorrow night? I just noticed that "Baseline" doesn't work when you run a benchmark as new BenchmarkRunner().Run<BenchmarkProgram>();, it only works via the BenchmarkSwitcher
Yeah, I'll take a look at the develop branch as well
Andrey Akinshin
@AndreyAkinshin

can you wait to release till tomorrow night

Of course.

Matt Warren
@mattwarren
thanks
BTW this (me messing up the merge) makes me think that we need some sort of C.I build
I used AppVeyor before, can you access https://ci.appveyor.com/project/mattwarren/minibench-warren and see it?
Andrey Akinshin
@AndreyAkinshin
It is a very good idea.
Matt Warren
@mattwarren
Okay, I'll add an issue to track it
Andrey Akinshin
@AndreyAkinshin

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.

Matt Warren
@mattwarren
okay, that might be because I'm on the free plan, I guess that doesn't matter for us does it? We could even put a badge on our GitHub page, showing the build status!!
Andrey Akinshin
@AndreyAkinshin
Yep.
Matt Warren
@mattwarren
can you wait to release till tomorrow night
I've just pushed the changes so that new BenchmarkRunner().Run<BenchmarkProgram>(); works when you have a Benchmark with [Benchmark(Baseline = true)]
so you can do the release now if you want
Matt Warren
@mattwarren
cool
Andrey Akinshin
@AndreyAkinshin
@mattwarren, I really like ResultExtenders, but can I don't like the name. Do you have another idea about nice name for these classes? I want a one-word-name.
@mattwarren, also, what do you think about new following renaming: BenchmarkJitVersion -> BenchmarkJitter?
Matt Warren
@mattwarren

but can I don't like the name.

LOL yeah naming is always hard! I'll have a think about what single-word "ResultExtenders" could be change to

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

On a related note, I was thinking, do we need to "Benchmark" prefix everywhere?! I know it would be big change, but within the BenchmarkDotNet source base "Benchmark" is already implied, so in a lot (but not all cases) it's a bit redundant
Andrey Akinshin
@AndreyAkinshin
It makes sense, I will thing about it.
Andrey Akinshin
@AndreyAkinshin
I have an idea about ResultExtenders. We can transform all of your standard columns (like Type, Method, Platform, etc.) to ResultExtenders. Then it will not be "extenders". We can call it "BenchmarkColumn". (see also: PerfDotNet/BenchmarkDotNet#82, we can define the column set manually per benchmark).
Andrey Akinshin
@AndreyAkinshin
@mattwarren, I started a big refactoring, checkout the refactoring branch. Sometime it doesn't work well, but you can look at new API. =)