perf(session): reduce allocations in InMemoryService.AppendEvent#1147
Open
huntiezz wants to merge 1 commit into
Open
perf(session): reduce allocations in InMemoryService.AppendEvent#1147huntiezz wants to merge 1 commit into
huntiezz wants to merge 1 commit into
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
huntiezz
force-pushed
the
perf/session-append-event-clone
branch
2 times, most recently
from
July 10, 2026 18:34
8678e57 to
56fdcd6
Compare
Deep-clone event action maps and slices only when non-empty, and trim temporary state keys before persisting to the canonical session store. Reuse the trimmed event from appendEvent to avoid duplicate work.
huntiezz
force-pushed
the
perf/session-append-event-clone
branch
from
July 10, 2026 18:34
56fdcd6 to
582c5e0
Compare
Author
|
Can someone review this? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
cloneEventForStorage()to deep-clone event maps and slices only when non-emptyMotivation
InMemoryService.AppendEventruns on every non-partial LLM/tool event in the default in-memory runner path. It previously calledmaps.Clone/slices.Cloneon every action field even when empty, causing unnecessary heap allocations on the hot path.This also ensures events retrieved via
Gethave temporary state keys stripped (matching the runner-held session copy).Testing Plan
go test -race -count=1 ./session/...TestInMemoryService_AppendEvent_PreservesInputEventTempStateto verifyGetreturns stripped temp keysBenchmarkInMemoryService_AppendEvent