Conversation
Introduce dedicated BenchmarkDotNet benchmarks for CPU side render pipeline and player performance analysis.
Added
Benchmark project
- Adds Benchmarks/ChangeTrace.Benchmarks.csproj
- Adds BenchmarkDotNet dependency
- References production ChangeTrace code from separate benchmark project
- Keeps benchmark code excluded from normal application runtime
Render pipeline benchmarks
- Adds render event translation benchmark
- Adds render state assembly benchmark
- Adds scene snapshot assembly benchmark
- Adds scene frame update benchmark
- Adds render frame submission benchmark
- Adds CPU side GPU buffer data preparation benchmark
- Adds hive layout step and convergence benchmarks
Player benchmarks
- Adds event cursor seek and drain benchmarks
- Adds seekable timeline benchmarks
- Adds timeline stepper traversal benchmark
- Adds timeline player factory benchmark
Benchmark fixtures
- Adds deterministic render benchmark fixture
- Generates synthetic render scenes for 1k, 10k and 100k event scenarios
- Adds deterministic player timeline fixture
- Avoids OpenTK window creation and real GPU access
Documentation and tooling
- Adds benchmark README with local run commands
- Adds task benchmark command for render pipeline benchmarks
- Enables memory allocation diagnostics
- Documents BenchmarkDotNet report output and runtime notes
Result
These changes provide repeatable CPU side performance baselines for render translation, layout, snapshot assembly, GPU data preparation and player playback paths before deeper optimization work.
16 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduce dedicated BenchmarkDotNet benchmarks for CPU side render pipeline and player performance analysis.
Added
Benchmark project
- Adds Benchmarks/ChangeTrace.Benchmarks.csproj
- Adds BenchmarkDotNet dependency
- References production ChangeTrace code from separate benchmark project
- Keeps benchmark code excluded from normal application runtime
Render pipeline benchmarks
- Adds render event translation benchmark
- Adds render state assembly benchmark
- Adds scene snapshot assembly benchmark
- Adds scene frame update benchmark
- Adds render frame submission benchmark
- Adds CPU side GPU buffer data preparation benchmark
- Adds hive layout step and convergence benchmarks
Player benchmarks
- Adds event cursor seek and drain benchmarks
- Adds seekable timeline benchmarks
- Adds timeline stepper traversal benchmark
- Adds timeline player factory benchmark
Benchmark fixtures
- Adds deterministic render benchmark fixture
- Generates synthetic render scenes for 1k, 10k and 100k event scenarios
- Adds deterministic player timeline fixture
- Avoids OpenTK window creation and real GPU access
Documentation and tooling
- Adds benchmark README with local run commands
- Adds task benchmark command for render pipeline benchmarks
- Enables memory allocation diagnostics
- Documents BenchmarkDotNet report output and runtime notes
Result
These changes provide repeatable CPU side performance baselines for render translation, layout, snapshot assembly, GPU data preparation and player playback paths before deeper optimization work.