-
Notifications
You must be signed in to change notification settings - Fork 167
chore(prof) cleanup I/O profiling code #3406
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: master
Are you sure you want to change the base?
Conversation
69fccab
to
83a4fe4
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3406 +/- ##
==========================================
- Coverage 61.89% 61.86% -0.03%
==========================================
Files 141 141
Lines 12501 12501
Branches 1633 1633
==========================================
- Hits 7737 7734 -3
- Misses 4042 4045 +3
Partials 722 722 see 2 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
Benchmarks [ profiler ]Benchmark execution time: 2025-10-15 11:34:15 Comparing candidate commit 77a818c in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 28 metrics, 8 unstable metrics. |
83a4fe4
to
7dab3a0
Compare
Reduces CPU overhead by checking stable_config availability once before the main loop instead of on every config entry/name iteration. This eliminates hundreds of redundant NULL checks per request. Adds zai_config_stable_file_is_available() to avoid repeated function calls and NULL checks inside the hot loop. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Restructured conditional chains to separate strcpy side effects from boolean checks. This improves code clarity and makes the control flow more explicit. The strcpy is now only executed after the source type check passes, maintaining the same performance characteristics while improving maintainability. Changed from chained && expressions with strcpy side effects to nested if statements with clear separation of concerns. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Adds an early continue for config entries that have names_count == 0, avoiding unnecessary processing and conditional checks for entries that cannot have any configuration values. This reduces loop overhead by skipping empty entries entirely instead of entering the inner loop and immediately exiting. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Modified zai_config_process_runtime_env to accept a length parameter instead of calling strlen(buf.ptr) for every config value. When we copy from zend_string sources, we now use ZSTR_LEN to get the length directly, eliminating redundant strlen calls on every iteration. This optimization is particularly effective for the stable config paths (FLEET and LOCAL) where we already have the string length from the zend_string structure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Benchmarks [ tracer ]Benchmark execution time: 2025-10-15 12:25:59 Comparing candidate commit 77a818c in PR branch Found 1 performance improvements and 4 performance regressions! Performance is the same for 188 metrics, 1 unstable metrics. scenario:MessagePackSerializationBench/benchMessagePackSerialization
scenario:SamplingRuleMatchingBench/benchRegexMatching2
scenario:SamplingRuleMatchingBench/benchRegexMatching3
scenario:SpanBench/benchOpenTelemetryAPI
scenario:TraceSerializationBench/benchSerializeTrace
|
Description
All this PR does is extract the global offset table manipulation code into it's own file
Reviewer checklist