perf(execution): fast-path empty outcome calls - #104
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe direct-action execution path now converts synchronous exceptions, completed results, and asynchronous results into ChangesDirect outcome handling
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The change adds a localized fast path for empty outcome executions while preserving exception, cancellation, and metrics behavior; no actionable merge-blocking risk remains after normal checks and review. Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
Summary
ExecuteOutcomeAsyncwhen the shield has no strategiesOutcome<T>Profiling finding
ExecuteOutcomeAsyncdid not share the existing empty-pipeline fast path used byExecuteAsync. A no-strategy outcome call therefore paid forKevlarContext.Rent, continuation construction, and context return on every execution.Benchmark
BenchmarkDotNet 0.15.8, default job, .NET 10.0.11, Windows 11, Intel Core Ultra 9 185H. Both runs used the same checkout base and machine.
Kevlar_EmptyOutcomeStateCommands:
Validation
dotnet build Kevlar.slnx -c Releasedotnet run --project tests/Kevlar.Tests -c Release --no-build -- --timeout 5m(612 passed)dotnet run --project tests/Kevlar.AllocationTests -c Release --no-build -- --timeout 5m(2 passed)Summary by CodeRabbit