Skip to content

Commit 1b89bee

Browse files
authored
perf: add fast-path comparison in MultiResponseMessages (open-webui#22100)
Same optimization as ResponseMessage: add O(1) fast-path check on content and done fields before falling back to full JSON.stringify comparison. Avoids expensive serialization when only content changes during streaming.
1 parent c436e03 commit 1b89bee

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

src/lib/components/chat/Messages/MultiResponseMessages.svelte

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,13 @@
6262
6363
let message = structuredClone(history.messages[messageId]);
6464
$: if (history.messages) {
65-
if (JSON.stringify(message) !== JSON.stringify(history.messages[messageId])) {
66-
message = structuredClone(history.messages[messageId]);
65+
const source = history.messages[messageId];
66+
if (source) {
67+
if (message.content !== source.content || message.done !== source.done) {
68+
message = structuredClone(source);
69+
} else if (JSON.stringify(message) !== JSON.stringify(source)) {
70+
message = structuredClone(source);
71+
}
6772
}
6873
}
6974

0 commit comments

Comments
 (0)