Conversation
…tests first iteration implemented
| if (args.Contains("--ranking")) | ||
| { | ||
| List<string> argList = args.ToList(); | ||
| argList.Remove("--ranking"); | ||
| args = argList.ToArray(); | ||
| configuration = configuration.WithOrderer(new DefaultOrderer(SummaryOrderPolicy.FastestToSlowest)); |
There was a problem hiding this comment.
I see this is an active or not settings in benchmarkdotnet. I'm thinking that maybe it would be better to stick to their philosophy (and what I'm doing for the CHECK_CACHE_MISSES define and HardwareCounters attribute for exemple 🤔). What do you think?
There was a problem hiding this comment.
I think we can go with the #define (to make starting conditions more uniform), but I'd still use it at the configuration level, rather than at the Attribute level. (BenchmarkDotNet encourages both).
Working on it right now..
There was a problem hiding this comment.
IConfig configuration = DefaultConfig.Instance
.WithOptions(ConfigOptions.DisableOptimizationsValidator)
.WithCapabilityExclusions();
#if RANK_RESULTS
configuration = configuration.WithOrderer(new BenchmarkDotNet.Order.DefaultOrderer(BenchmarkDotNet.Order.SummaryOrderPolicy.FastestToSlowest));
#endif
if (args.Length > 0)
{
benchmark.Run(args, configuration);
}
else
{
benchmark.RunAll(configuration);
}There was a problem hiding this comment.
Let me know what you think, otherwise I can just remove the change entirely. For my own workflow, the define is certainly less convenient than a command line parameter, but it's your repo and you also run the benchmark in its full scale, so this is what counts.
…ities.cs, and changed the --ranking option to a RANK_RESULTS define
|
My bad, I renamed the branch on my repo :D |
Hello!
I'm Tiger, the maintainer of 🦊 fennecs. Thanks for making this nice Benchmark repo, and thanks so much to @xentripetal for building the fennecs benchmarks. And I'm also a big fan of DefaultEcs. ^^
Content of this PR
Framework
#define RANK_RESULTS, which adds an Orderer to the Config. While iterating, developers can now more clearly see where their fast/slow methods are at in relation to others.WithCapabilityExclusions(this IConfig)was written and Program.cs uses it at startupCategoryExclusion : IFilterwas created and documented - if this filter is present, it will turn off any categories it matches. (it supports a single string)WithCapabilityExclusionsCapabilitiesin Categories.cs was createdCapabilities.AdvSIMDwill only show up on appropriate Arm64 platforms.SystemWithTwoComponentsMultipleCompositionSystemWithOneComponentsSystemWithTwoComponentsSystemWithThreeComponentsfennecs 0.4.0-beta support
fennecs 0.1.1-betato the recent release,fennecs 0.4.0-betaCategory.System, and wrote additional ones:Query<>.RawBenchmarks now have x64 AVX2, SSE2, and Arm64 AdvSIMD support, with commentsfennecs (Blit)benchmark bends the rules too far... 🗡️Have a good day, and I'm looking forward to your review/feedback.