Comments (5)
FYI. @mellinoe, @DrewScoggins
from performance.
I did some analysis of what I think the current gaps are, and what the most important things to fill in are.
Existing Coverage:
- Vector2/3/4 -- Current test cases are good, but some small improvements could be made.
- Test cases are too long -- 10+ seconds on my machine for some. That is single-iteration time, and should ideally be around 100 - 1000 ms.
- Test cases should potentially have unrolled loops under the inner iteration count -- may not have a noticeable effect.
- Test cases are dependent on inner iteration count. Some fail if it is changed because the expected results are based on operations which accumulate over the number of inner iterations. This isn't strictly "wrong", but it feels like the inner iteration count is something that you should be able to tweak without causing the tests to fail outright.
Coverage needed (order of importance):
-
Vector / Vector<T>
-
Matrix4x4
-
Quaternion
-
Matrix3x2
-
Plane
-
Vector2/3/4 could benefit from coverage on these methods, in order of importance (IMO):
- Min / Max
- Transform (at least one overload)
- Lerp
- Clamp
- There are a handful of other operations which aren't covered on
Vector2/3/4
, but they did not seem very critical.
@tannergooding Thoughts on the prioritization above?
from performance.
I think the list above represents a good prioritization.
Test cases are dependent on inner iteration count.
I think the biggest issue here is that without consuming the output and without modifying the input values, the JIT can (and does in some of the cases) optimize away the call entirely.
I can think of a handful of other ways to ensure we consume the output and modify the input, but they generally involve doing something like storing the value in an array (which may be expensive enough in some cases to skew the results due to memory latency).
from performance.
@adamsitnik, should this be moved to dotnet/performance?
from performance.
should this be moved to dotnet/performance?
@tannergooding good idea! #done
from performance.
Related Issues (20)
- [GC.Infrastructure] More robustness changes for ASP.NET benchmark runs.
- Wasm runs failing with empty WasmAssembliesToBundle HOT 10
- Readd Microsoft.NET.Test.Sdk package reference HOT 3
- Perf_Regex_Industry_SliceSlice.Count Benchmarks OOM under public CI with `[MemoryRandomization]`
- 8.0 Perf CI Runs Failing
- [GC Infrastructure] Same output directory as ASP.NET Benchmarks for GCPerfSim
- Android BDN test runs are failing
- WinHttpHandler
- Some MonoAOT BDN individual tests are failing with PlatformNotSupportedException HOT 4
- Performance triage improvements in .NET 9
- Two Perf_Regex_Common tests crashing in MonoAOT testing
- Add ADX query for Mono and WASM issues
- Cannot set --affinity option for 32+ CPUs HOT 2
- Report caches don't account for test names that match past 200 characters HOT 1
- Update LTTNG installation to workaround bug HOT 3
- SDK Scenario PowerBI is out of date HOT 1
- Investigate adding TestFilter or additional name options to autofiling issues
- Investigate countername filter so consistent counters are not included in autofiling graphs
- PerfTiger119 hitting errors when importing azure.storage.blob
- Android runs on certain machines are unable to find azure.identity HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from performance.