Skip to content

feat: Add Benchmark App & No-Op Features#108

Merged
jshlbrd merged 4 commits intomainfrom
jshlbrd/feat/benchmark-app
Apr 29, 2023
Merged

feat: Add Benchmark App & No-Op Features#108
jshlbrd merged 4 commits intomainfrom
jshlbrd/feat/benchmark-app

Conversation

@jshlbrd
Copy link
Contributor

@jshlbrd jshlbrd commented Apr 28, 2023

Description

  • Adds a development app for benchmarking
    • Adds noop (no-op, no operation) transform and sink for enabling zero data processing
    • Updates gitignore for profiling binaries generated by benchmark app
  • Refactors stdout sink to return an empty struct

Motivation and Context

The no-op features are helpful for development and integration testing (e.g., deploy a Substation node that doesn't output data but still processes it), and the benchmark app provides an easy way to do application-level performance tests. Here are some examples:

256 MB memory, 1 CPU

$ ./cmd/development/benchmark/benchmark -config examples/quickstart/config.json -input examples/quickstart/data.json 
100000 events in 7.571924086s (13206.68 events/sec)
1 MB in 7.571924086s (0.16 MB/sec)

1 GB memory, 2 CPU

$ ./cmd/development/benchmark/benchmark -config examples/quickstart/config.json -input examples/quickstart/data.json 
100000 events in 865.146917ms (115587.30 events/sec)
1 MB in 865.146917ms (1.43 MB/sec)

2 GB memory, 4 CPU

$ ./cmd/development/benchmark/benchmark -config examples/quickstart/config.json -input examples/quickstart/data.json 
100000 events in 947.320584ms (105560.89 events/sec)
1 MB in 947.320584ms (1.31 MB/sec)

How Has This Been Tested?

Tested locally, no new unit tests required.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

@jshlbrd jshlbrd marked this pull request as ready for review April 28, 2023 15:50
@jshlbrd jshlbrd requested a review from a team as a code owner April 28, 2023 15:50
@jshlbrd jshlbrd merged commit ddfb7bc into main Apr 29, 2023
@jshlbrd jshlbrd deleted the jshlbrd/feat/benchmark-app branch April 29, 2023 00:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants