PHPStan 更新!性能提升 40%,CI 终于不用等到天荒地老
这次更新真的快。不是一点点,是显著的那种快。
各位 PHP 开发者,大家早上好。
如果此刻你正盯着 CI 流水线那缓慢挪动的进度条发呆,在这个寒冬里等待静态分析的结果,那么接下来的这个消息,绝对能让你精神一振。
就在这两天,PHP 圈著名的静态分析工具 PHPStan 迎来了一次性能上的“暴走”更新。根据 Phoronix 的最新报道以及 GitHub 上的发布说明,最新的 PHPStan 2.1 版本(特别是本周发布的 2.1.34 补丁)在分析速度上实现了 25% 到 40% 的巨幅提升。
这意味着什么?意味着如果你之前的项目全量分析需要跑 10 分钟,现在可能 6 分钟出头就搞定了。对于大型遗留项目,这种体感的提升会更加明显。
为什么突然快了这么多?
并没有什么黑魔法,这次提速纯粹归功于实打实的代码工程优化。
项目主理人 Ondřej Mirtes 和核心贡献者(特别是 @staabm)在底层代码上下了大功夫。他们重新梳理了分析器的逻辑,主要集中在以下几个方面:
- 1. 反射对象的缓存优化:减少了重复创建对象带来的开销。
- 2. 分析器内部的“微操”:清理了大量冗余计算。比如避免了不必要的 Scope 合并,减少了 composer.json 的重复读取和解码,甚至对内部使用的哈希算法(如 md5 和 sha256)进行了 CPU 级别的优化。
- 3. 更聪明的类型推断:在处理某些复杂逻辑时,代码路径走得更直了。
Phoronix 的作者 Michael Larabel 亲自上手测了一下,在他自己的测试环境中,分析速度确实快了 30% 左右。这种不需要修改任何业务代码、仅仅升级工具就能获得的性能红利,简直就是白捡的快乐。
开发者该做什么?
很简单,打开你的终端。
composer update phpstan/phpstan
只要把版本号升上去,你就能立刻感受到风一般的速度。
对于使用 Larastan 的 Laravel 开发者,或者基于 PHPStan 构建的其他工具链,只要底层依赖更新了,大家都能雨露均沾。
结语
在 PHP 8.4 普及和现代 PHP 生态日益成熟的今天,静态分析已经成为保证代码质量的必需品。但随着项目体积膨胀,分析速度往往成为阻碍我们频繁提交代码的绊脚石。PHPStan 团队这次的优化,切实解决了大家的痛点。
时间就是金钱,省下来的这些 CI 等待时间,是用来摸鱼,还是用来写更多的 Bug(误),就看各位的了。
还没有升级的朋友,赶紧去体验一下吧!