-
Notifications
You must be signed in to change notification settings - Fork 0
Binary read and write benchmarks #73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces binary data read and write benchmarking capabilities to the testing application by adding two new benchmark classes and converting the benchmark setup infrastructure to be asynchronous.
Changes:
- Converted benchmark setup methods from synchronous to asynchronous across all benchmark classes
- Added BinaryWriteBenchmark class for benchmarking binary blob file generation from PX files
- Added BinaryReadBenchmark class for benchmarking binary data reading with multiple read strategies
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| Px.Utils.TestingApp/Commands/PxFileValidationBenchmark.cs | Updated setup method signature to async |
| Px.Utils.TestingApp/Commands/MetadataSyntaxValidationBenchmark.cs | Updated setup method signature to async |
| Px.Utils.TestingApp/Commands/MetadataContentValidationBenchmark.cs | Updated setup method signature to async |
| Px.Utils.TestingApp/Commands/MetadataBuilderBenchmark.cs | Updated setup method to async and added using statement for file stream |
| Px.Utils.TestingApp/Commands/DatabaseValidationBenchmark.cs | Updated setup method signature to async |
| Px.Utils.TestingApp/Commands/DataValidationBenchmark.cs | Updated setup method to async and added missing base call |
| Px.Utils.TestingApp/Commands/DataReadBenchmark.cs | Updated setup method signature to async |
| Px.Utils.TestingApp/Commands/BinaryWriteBenchmark.cs | New class implementing binary write benchmarking with parallel blob generation |
| Px.Utils.TestingApp/Commands/BinaryReadBenchmark.cs | New class implementing binary read benchmarking with multiple read strategies |
| Px.Utils.TestingApp/Commands/BenchmarkRunner.cs | Registered new binary benchmark commands |
| Px.Utils.TestingApp/Commands/Benchmark.cs | Converted base setup method to async and updated call site |
Comments suppressed due to low confidence (1)
Px.Utils.TestingApp/Commands/BinaryWriteBenchmark.cs:1
- The selectedValues list is built inside a loop and then passed to DimensionMap constructor. This could be optimized by using collection expression syntax: newDimMaps.Add(new DimensionMap(dimMap.Code, [..Enumerable.Range(0, dimMap.ValueCodes.Count).Where(i => i % 2 == 0).Select(i => dimMap.ValueCodes[i])])).
using Px.Utils.BinaryData.ValueConverters;
…data read benchmarks for comparison, union and intersection matrix map methods
No description provided.