Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 25 17:47
    rymeskar commented #973
  • Nov 24 00:27
    timcassell commented #1596
  • Nov 23 23:11
    timcassell synchronize #1596
  • Nov 23 23:09
    timcassell commented #1596
  • Nov 23 23:07
    timcassell commented #1596
  • Nov 23 22:57
    timcassell synchronize #1596
  • Nov 23 22:52
    timcassell synchronize #1596
  • Nov 23 22:39
    timcassell commented #1596
  • Nov 23 22:38
    timcassell edited #1596
  • Nov 23 22:36
    timcassell synchronize #1596
  • Nov 23 11:27
    tomatopunk commented #54
  • Nov 23 11:25
    tomatopunk commented #54
  • Nov 23 11:24
    tomatopunk commented #54
  • Nov 23 10:38
    adamsitnik milestoned #1603
  • Nov 23 10:38
    adamsitnik labeled #1603
  • Nov 23 10:38
    adamsitnik labeled #1603
  • Nov 23 10:38
    adamsitnik opened #1603
  • Nov 21 23:21
    Lonli-Lokli commented #155
  • Nov 21 14:00
    pawelpabich commented #1588
  • Nov 21 02:48
    jonsequitur commented #1037
gpetrou
@gpetrou
Is it possible to Setup some code only once per assembly, not per test method as GlobalSetup does?
Similarly, is it possible to initialize some code per class?
We have some third party libraries that can only be initialized/terminated once and we also generate some data that should be shared between tests.
Johannes Rössel [yWorks]
@jroessel
@gpetrou Wouldn't a static initializer of any type that's used in benchmarks do the trick?
gpetrou
@gpetrou
@jroessel I assume you are talking about the code per class case? I will check that. But assuming that this will work, how can Cleanup happen once per class or assembly?
Ivan Kochurkin
@KvanTTT
Hi! Is it possible to export to csv raw nanoseconds 18 instead of formatted form like 0.0184 ms?
Reason: I'm comparing several runtimes and need in normalized benchmark time.
Adam Sitnik
@adamsitnik
hi @KvanTTT SummaryStyle is what you are looking for
var summaryStyle = new SummaryStyle
{
    PrintUnitsInHeader = true,
    PrintUnitsInContent = false,
    SizeUnit = SizeUnit.B,
    TimeUnit = TimeUnit.Nanosecond
};

config = config.With(summaryStyle);
Ivan Kochurkin
@KvanTTT
Yes, I've already found it, but thank you! :thumbsup:
Jason Bock
@JasonBock
Is there any way to run a project with benchmark tests where LangVersion is set to preview? I want to test some stuff I'm writing for .NET 5.0 and I need to use C# 9 features, but when I have preview in play, I get:
error MSB4086: A numeric comparison was attempted on "$(LangVersion)" that evaluates to "preview" instead of a number, in condition "'$(LangVersion)' == '' Or '$(LangVersion)' < '7.3'".
Jason Bock
@JasonBock
Nevermind....I set it to 9.0 and apparently that worked :)
sanjaysoni5657
@sanjaysoni5657
Can we use dependency injection setup same as we do in dotnet core project for Benchmark Test?
Daniel Hughes
@trampster
I've run into an issue trying to create benchmarks for a .NET 5 c# source generator. It appears that it doesn't accept the LangVersion being set to Preview, but this is currently required for c# source generators
It doesn't work if set to 9.0 like what worked for @JasonBock
Clinton Ingram
@saucecontrol
What does it do if you set it to 9.0? That's the correct solution
Daniel Hughes
@trampster
If I set it to 9.0 it doesn't compile because the Source Generator doesn't generate any source
Clinton Ingram
@saucecontrol
the roslyn build in the 5.0 RC1 SDK definitely recognizes langversion 9.0. are you compiling with an older VS version instead?
Daniel Hughes
@trampster
No I'm on linux
I'm running 5.0.100-rc.1.20452.10
I'm using vscode and running from the commandline
Daniel Hughes
@trampster
The Source Generator announcement says that it requires Preview: https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/
Why do I need to use the Preview LangVersion to consume a Source Generator?
Although Source Generators are not technically a C# language feature, they are in preview. Rather than introduce a new setting just for Source Generators, we decided it would be easier to just use the existing switch that enables preview language features for the C# compiler.
Given that Preview features are things that could benefit most from benchmarking, it seems an odd choice to not support them.
Daniel Hughes
@trampster
Roslyn doesn't have any problems recognizing langversion 9.0, its just that langversion 9.0 doesn't seem to include Source Generators yet.
Clinton Ingram
@saucecontrol
That's very strange... At the time that announcement was made, Roslyn didn't recognize 9.0, only preview. I believe SDK preview 7 was the first to recognize 9.0, so I would have expected all 9.0 roslyn features to fall under that flag at that point
Daniel Hughes
@trampster
I've asked about it on the roslyn gitter, my guess is that Source Generators wasn't deemed ready in time for c# 9.0 so stayed in preview.
The .net 5 RC1 announcement didn't mention Source Generators, which I thought was strange at the time but could be that it has been delayed.
Clinton Ingram
@saucecontrol
ohhhhhh
you can probably set up an inproc benchmark then https://benchmarkdotnet.org/articles/samples/IntroInProcess.html
Martz
@Martz2804_twitter

hi all, I have a question regarding benchmarkdotnet setup, read the docs but I can't seem to find the solution for it. Maybe this isn't the right tool or I (plan to) use it wrong.

Say you have a library you want to perf test with FunctionA() which calls into a lot of code internal to the lib. You want to benchmark the perf of FunctionA() accross multiple versions of the library. Is there a way to automate this "version switching" with benchmarkdotnet? I can't seem to find it

Clinton Ingram
@saucecontrol
You can do it if the library is in a nuget package: https://benchmarkdotnet.org/articles/samples/IntroNuGet.html
TeBeCo
@tebeco
i think theres a sample about nuget and newtonsoft doing this exactly
oO faster
Clinton Ingram
@saucecontrol
lol
TeBeCo
@tebeco
^^
Martz
@Martz2804_twitter
I don't know how I missed this... thank you folks, for the quick answer :) seems to be what I'm after!
TeBeCo
@tebeco
perfect ;)