Skip to content

Conversation

@RLittlesII
Copy link
Member

@RLittlesII RLittlesII commented Aug 23, 2018

  • Added NavigationStack Benchmarks
  • Added AutoPersist Benchmarks
  • Added ReactiveList Operations Benchmarks
  • Added RoutableViewModelMixin Benchmarks

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Resolves #1711
Resolves #1276

What is the current behavior? (You can also link to an open issue here)
There are no performance tests

What is the new behavior (if this is a feature change)?
Adds a harness for ReactiveUI to execute performance benchmarks

What might this PR break?
Nothing. This PR is additive. Nothing in this PR affects the core solution.

Please check if the PR fulfills these requirements

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

@RLittlesII RLittlesII requested a review from a team August 23, 2018 19:29
@RLittlesII RLittlesII changed the title [WIP] Added Benchmark Harness [WIP] Added Benchmark Harness (#1729) Aug 23, 2018
@RLittlesII
Copy link
Member Author

RLittlesII commented Aug 23, 2018

A few things to point out.

  1. Some other projects that have implemented Benchmark DotNet have pulled their benchmarks into the main solution. I elected to go a different route based on our current set of integration tests having separate solutions
  2. xUnit is used to create the test harness. We could have gone with just a dotnet core app, but I tend to prefer tests using test frameworks.
  3. There are several output formats. We should probably discuss what output format we want to use for the future of these types of tests. List of Bechmark exporters.
  4. This PR does not add the benchmarks to the build process
  5. If you find something that you know uses dynamic data that should be added before this PR is completed, call it out.
  6. HELP WANTED: The AutoPersist benchmarks currently don't do much, which means I don't fully understand how to interact with the API

});
}

[Benchmark]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if there is any penalty having the xunit fact in this file. I imagine that harness file getting pretty large

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because it's xUnit and it should simply run all [Fact] in the project, we should be able to break up the harness files into smaller files in the future as needed.

}

[Fact]
public void Reactive_List_Operation_Benchmark()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add my bench marks for the inpc property observable in the framework. In the pr I linked the other day.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

- Added NavigationStack Benchmarks
- Added AutoPersist Benchmarks
- Added ReactiveList Operations Benchmarks
- Added RoutableViewModelMixin Benchmarks
@RLittlesII RLittlesII changed the title [WIP] Added Benchmark Harness (#1729) Added Benchmark Harness (#1729) Aug 24, 2018
@RLittlesII RLittlesII merged commit 6d61bba into reactiveui:master Aug 24, 2018
@RLittlesII RLittlesII deleted the benchmarks branch August 24, 2018 19:20
@RLittlesII RLittlesII added this to the 9.0.1 milestone Aug 28, 2018
glennawatson pushed a commit that referenced this pull request Mar 23, 2019
 
Added Benchmark Harness (#1729)

- Added NavigationStack Benchmarks
- Added AutoPersist Benchmarks
- Added ReactiveList Operations Benchmarks
- Added RoutableViewModelMixin Benchmarks
@lock lock bot locked and limited conversation to collaborators Jun 25, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create a benchmark project. ReactiveList creation performance

2 participants