⚡ Bolt: Optimize Helper.IsTheSame to be allocation-free #157
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.
⚡ Bolt: Performance Optimization
💡 What:
Replaced the
IsTheSamemethod implementation inv4/DynamicsCrm.DevKit.Shared/Helper.cs. The old implementation used a chain ofReplacecalls to remove whitespace, creating 4-8 intermediate string allocations per comparison. The new implementation iterates through the existing strings using pointers/indices, skipping whitespace and comparing characters in-place.🎯 Why:
This method is used frequently to check if generated code files have changed (e.g., in
TaskGeneratorandTaskWebResource). For large files, the previous approach generated significant garbage (O(N) allocations), increasing GC pressure and execution time. The new approach is O(1) in memory allocation (zero allocations) and O(N) in time.📊 Impact:
🔬 Measurement:
Since local benchmarks cannot be run, the improvement is theoretical but guaranteed by the removal of allocations in a hot path.
PR created automatically by Jules for task 4882881517071650529 started by @phuocle