To create a baseline when discussing moving from struct to class (#372,#500) or changing the internal representation from double to decimal (#372) or even to a rational value (#478).
Any changes should be compared to a baseline so we know how much better/worse things get in terms of CPU and memory and in both absolute and relative terms.
- CPU time
- Garbage collector pressure
- Memory footprint
- Single quantity instances
- Array of quantity instances
Example of things to test on:
- Construction: constructors and
From methods
- Conversion:
.As(), .ToUnit() and conversion properties like .Centimeters
- ToString: and its various overloads
- Parsing:
Parse and TryParse methods
- Dynamic: The above, but dynamically via
IQuantity and QuantityInfo types. Should introduce additional boxing and extra conditions.
I suggest using Benchmark.NET, I have good experience with it.
To create a baseline when discussing moving from
structtoclass(#372,#500) or changing the internal representation fromdoubletodecimal(#372) or even to a rational value (#478).Any changes should be compared to a baseline so we know how much better/worse things get in terms of CPU and memory and in both absolute and relative terms.
Example of things to test on:
Frommethods.As(),.ToUnit()and conversion properties like.CentimetersParseandTryParsemethodsIQuantityandQuantityInfotypes. Should introduce additional boxing and extra conditions.I suggest using Benchmark.NET, I have good experience with it.