-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updated fennecs to 0.4.0-beta #36
base: master
Are you sure you want to change the base?
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 : IFilter
was created and documented - if this filter is present, it will turn off any categories it matches. (it supports a single string)WithCapabilityExclusions
Capabilities
in Categories.cs was createdCapabilities.AdvSIMD
will only show up on appropriate Arm64 platforms.SystemWithTwoComponentsMultipleComposition
SystemWithOneComponents
SystemWithTwoComponents
SystemWithThreeComponents
fennecs 0.4.0-beta support
fennecs 0.1.1-beta
to the recent release,fennecs 0.4.0-beta
Category.System
, and wrote additional ones:Query<>.Raw
Benchmarks 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.