-
Notifications
You must be signed in to change notification settings - Fork 499
feat(benchmark): enhance BenchmarkResult to track duration in nanoseconds and add field count metrics #2898
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
Conversation
…onds and add field count metrics
…improved uniqueness handling
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 enhances the BenchmarkResult class to track duration in nanoseconds instead of milliseconds and adds comprehensive field count metrics to support more granular performance analysis of data processing operations.
- Upgrades timing precision from milliseconds to nanoseconds for better accuracy
- Adds field count tracking to measure processing cost per field
- Updates field count calculation algorithms with new cost models for strings and binary data
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
AvroRecordBinderTest.java | Updates test expectations to match new field counting algorithm |
DebeziumUnwrapTransform.java | Improves schema caching with proper key-based lookup and thread-safe fingerprint computation |
RecordAssembler.java | Minor optimization caching field count to avoid repeated schema field size lookups |
PerfTestCase.java | Modifies benchmark to return field counts and use nanosecond precision timing |
FieldsPerformanceTest.java | Updates output formatting to display new field count metrics and removes logging dependency |
FieldProfileRunner.java | New comprehensive field profiling tool for detailed per-field-type performance analysis |
BenchmarkResult.java | Core changes adding nanosecond duration tracking and field count metrics with derived calculations |
FieldMetric.java | Completely redesigned field counting algorithm with new cost models for different data types |
RecordBinder.java | Fixes map field counting logic and removes redundant field existence checks |
AvroValueAdapter.java | Refactors map conversion logic with better error handling and code deduplication |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
core/src/main/java/kafka/automq/table/process/transform/DebeziumUnwrapTransform.java
Outdated
Show resolved
Hide resolved
…onds and add field count metrics (#2898) * feat(benchmark): enhance BenchmarkResult to track duration in nanoseconds and add field count metrics * feat(adapter): improve map conversion handling and enhance field counting logic * feat(transform): refactor enriched schema cache to use SchemaKey for improved uniqueness handling * feat(metric): reduce granularity for binary buffers to optimize performance * feat(metric): reduce granularity for binary buffers to optimize performance * feat(binder): optimize map field count calculation in RecordBinder * feat(transform): simplify fingerprint computation in DebeziumUnwrapTransform
…onds and add field count metrics (#2898) (#2901) * feat(benchmark): enhance BenchmarkResult to track duration in nanoseconds and add field count metrics * feat(adapter): improve map conversion handling and enhance field counting logic * feat(transform): refactor enriched schema cache to use SchemaKey for improved uniqueness handling * feat(metric): reduce granularity for binary buffers to optimize performance * feat(metric): reduce granularity for binary buffers to optimize performance * feat(binder): optimize map field count calculation in RecordBinder * feat(transform): simplify fingerprint computation in DebeziumUnwrapTransform
No description provided.