From 0a0ede2e02bb37dedc1088d9fc12d1b4df8955dd Mon Sep 17 00:00:00 2001 From: DXC Date: Mon, 15 Jun 2026 17:10:36 +0800 Subject: [PATCH] =?UTF-8?q?Step3=20=E6=8F=92=E5=80=BC=EF=BC=9A=E5=A4=9A?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E5=86=85=E5=AD=98=E9=9B=AA=E5=B4=A9=E4=BA=8C?= =?UTF-8?q?=E6=AC=A1=E8=A1=A5=E4=B8=81=EF=BC=88mask=20copy=20+=20workers?= =?UTF-8?q?=20=E4=B8=8A=E9=99=90=206=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/algorithms/interpolation/interpolator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/algorithms/interpolation/interpolator.py b/src/core/algorithms/interpolation/interpolator.py index 6962065..eeba159 100644 --- a/src/core/algorithms/interpolation/interpolator.py +++ b/src/core/algorithms/interpolation/interpolator.py @@ -508,7 +508,8 @@ def interpolate_zero_pixels_batch( cpu_count = multiprocessing.cpu_count() or 1 except (NotImplementedError, OSError): cpu_count = 1 - effective_workers = max(1, cpu_count) + # 为了内存安全,强制将物理进程数限制在最高 6 个 + effective_workers = min(6, max(1, cpu_count)) n_blocks_y = (height + block_size - 1) // block_size n_blocks_x = (width + block_size - 1) // block_size @@ -531,7 +532,7 @@ def interpolate_zero_pixels_batch( col_offset = x0 - ex0 mask_segment_ext = None if mask_array is not None: - mask_segment_ext = mask_array[ey0:ey1, ex0:ex1] + mask_segment_ext = mask_array[ey0:ey1, ex0:ex1].copy() tasks.append(( x0, y0, ey0, ex0, ey1, ex1, row_offset, col_offset, inner_h, inner_w,