Tim Cassell
Tim Cassell
It might actually be okay to keep the measurement in the engine, because the async state machine checking if the ValueTask is already complete is just a null check, which...
I started looking at this, and changing the engine itself to be async has a lot of repercussions across the entire library. The main issue isn't the refactoring of the...
#1941 Is a stop-gap to get ValueTasks to work again. It is still using the less-efficient (more overhead) synchronous blocking for each benchmark method call. A more efficient (less overhead)...
I did some refactoring to move the measurement to the workload call and do proper awaits on the returned `(Value)Task`, and the results are interesting. ```cs [Benchmark] public async Task...
Measuring `ValueTask` instead of `Task`: Current: | Method | Mean | Error | StdDev | Median | Gen 0 | Allocated | |--------------- |--------------:|----------:|----------:|--------------:|-------:|----------:| | AsyncYield | 1,896.6121 ns |...
Also what about in-process benchmarks? I know allocations results will be affected, but I'm not sure what else might be. And what about P-cores vs E-cores on Intel cpus (actually,...
> > On my 24-core machine the time to run dotnet/performance benchmarks dropped from 9h 49m to half an hour ;) > > Wow! What about perf tests that need...
What if you just run `GetExtraStats` twice, only using the results from the second run (or the lesser of both runs)?
@adamsitnik I noticed you showed that the issue is not apparent in .NET 5.0, which I find strange because I posted an issue in runtime (https://github.com/dotnet/runtime/issues/45446) that demonstrates memory measurement...
Also @adamsitnik I was looking at `RuntimeHelpers.PrepareDelegate` and `RuntimeHelpers.PrepareMethod` which I was hoping would help me with my PR. Sadly, it didn't, but it might help here if it really...