You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加新基准测试后Rust Criterion构建失败,求排查原因

问题:新增基准测试后cargo-criterion/cargo bench构建失败,rustc被SIGKILL终止

问题现象

使用criterion和cargo-criterion为项目执行基准测试时,添加若干新基准测试后,执行cargo criterion或cargo bench均无法完成构建步骤,返回以下错误:

Error: Failed to parse message from cargo187/190: continuous(bench), test_data(bench), simplistic(bench)

Caused by:
    expected value at line 188 column 1
error: could not compile `compiled-regex`

进一步排查发现rustc进程被SIGKILL信号终止,但未给出具体原因。单独运行工作区示例文件中的单个基准测试可正常完成,调整基准测试的组合与顺序也未发现异常。

临时解决方案

经提示确认问题根源为编译器内存占用过高,移除部分自动生成函数的内联属性后,构建可正常完成。

可能的根本原因排查方向

  • 生成函数复杂度:自动生成的函数若逻辑复杂、代码量庞大,内联后会导致rustc在优化阶段需要处理的代码规模急剧膨胀,超出系统内存限制
  • 优化级别影响:基准测试默认使用--release优化级别,高优化策略下,内联大量代码会进一步加剧编译器的内存压力
  • 编译单元规模:单个编译单元内包含过多内联后的大函数,会导致rustc在类型检查、优化等阶段内存占用飙升
  • 可通过cargo build --bench --verbose查看编译详细日志,定位具体是哪个函数或模块触发了内存溢出

内容的提问来源于stack exchange,提问作者Tobiky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:22:12