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

如何获取arc lint各校验器运行耗时?及提速优化技巧

Arcanist arc lint性能优化问题

问题背景

我在用Arcanist,配置了大量内置和自定义校验器(linters),随着校验器增多,arc lint的运行速度越来越慢。在代码改动多(涉及ESLint校验)的场景下,time arc lint显示最长耗时能到30分钟,示例如下:

$ time arc lint
<...>
real    8m31.771s
user    17m53.159s
sys     4m52.329s

但在无改动的干净仓库里,运行速度很快:

$ time arc lint
 OKAY  No lint warnings.

real    0m7.961s
user    0m6.763s
sys     0m1.363s

现在arc lint只输出简单的提示:

$ arc lint
Linting....
No Errors

我想获取每个校验器的详细运行时长,理想输出是这样的:

$ arc lint
Linting eslint...
Elapsed time 18m38.311s
Linting with pylint...
Elapsed time 1m35.334s
Linting with local/
<...>
No Errors

请问怎么获取各校验器的详细运行信息?还有哪些arc lint的提速技巧?


获取各校验器的运行时长信息

  • 使用arc lint --trace参数:这个官方参数会输出完整的执行日志,包含每个校验器的启动、执行阶段和结束时间,能直接定位到耗时最长的校验器,是最便捷的方式。
  • 自定义计时逻辑(进阶):如果--trace的输出不够直观,可通过修改Arcanist的自定义LintEngine扩展,在每个校验器执行前后添加时间戳记录,然后输出时长。但优先推荐官方的--trace方案。

arc lint提速技巧

  • 精准校验范围:默认arc lint仅检查改动文件,若出现全量校验情况,检查.arcconfig中的lint.engine配置是否正确;也可手动指定文件路径,比如arc lint src/modified-file.js,避免无意义的全量扫描。
  • 优化慢校验器(以ESLint为例):
    • 开启缓存:在ESLint配置文件中设置cache: true,或执行eslint --cache,仅校验改动过的文件,避免重复计算。
    • 精简规则:禁用耗时高的规则(如大文件中的no-unused-vars),或拆分规则集,日常开发用轻量规则,CI阶段用严格规则。
  • 并行执行校验器:在.arcconfig中添加"lint.parallel": true,让多个校验器同时运行,缩短总耗时。
  • 清理冗余校验器:定期移除项目不需要的内置/自定义校验器,比如非Python项目关闭pylint。
  • 更新版本:升级Arcanist及各校验器到稳定版,新版本通常会有性能优化和bug修复。
  • 重置本地缓存:若缓存失效导致重复校验,删除.arc/lint-cache目录,让Arcanist重新生成有效缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:40:20