From 1da284a841109a0a0674f43aa95f19386b95b457 Mon Sep 17 00:00:00 2001 From: Dionisio Date: Mon, 23 Feb 2026 22:41:50 +0100 Subject: [PATCH] perf: move 512KB I/O buffer from stack to heap in chunked upload assembly - Async Future size drops from ~525KB to ~5KB - Eliminates stack overflow risk and reduces work-stealing copy cost --- src/infrastructure/services/chunked_upload_service.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/infrastructure/services/chunked_upload_service.rs b/src/infrastructure/services/chunked_upload_service.rs index 17684e5e..f9a6b548 100644 --- a/src/infrastructure/services/chunked_upload_service.rs +++ b/src/infrastructure/services/chunked_upload_service.rs @@ -648,7 +648,7 @@ impl ChunkedUploadService { let mut chunk_file = File::open(&chunk_path) .await .map_err(|e| format!("Failed to open chunk {}: {}", chunk.index, e))?; - let mut buf = [0u8; 524_288]; + let mut buf = vec![0u8; 524_288]; loop { let n = tokio::io::AsyncReadExt::read(&mut chunk_file, &mut buf) .await