Skip to content

Create benchmarks on CPU and memory #623

@angularsen

Description

@angularsen

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.

  1. CPU time
  2. Garbage collector pressure
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions