perf: single yield per line in stream chunks handler (#23266)

This commit is contained in:
Algorithm5838
2026-03-31 18:42:52 -05:00
committed by GitHub
parent 5fd9db8739
commit 98570d3547
+4 -8
View File
@@ -961,18 +961,15 @@ def stream_chunks_handler(stream: aiohttp.StreamReader):
skip_mode = False
yield line
else:
yield b'data: {}'
yield b'\n'
yield b'data: {}\n'
else:
# Normal mode: check if line exceeds limit
if len(line) > max_buffer_size:
skip_mode = True
yield b'data: {}'
yield b'\n'
yield b'data: {}\n'
log.info(f'Skip mode triggered, line size: {len(line)}')
else:
yield line
yield b'\n'
yield line + b'\n'
# Save the last incomplete fragment
buffer = lines[-1]
@@ -986,7 +983,6 @@ def stream_chunks_handler(stream: aiohttp.StreamReader):
# Process remaining buffer data
if buffer and not skip_mode:
yield buffer
yield b'\n'
yield buffer + b'\n'
return yield_safe_stream_chunks()