当你的编译器一跃跨越了 LLVM 12 年的演进,会发生什么?
发布日期:2026-10-14来源: 返回列表 >>

编译器升级的一大好处是,你的应用代码无需改动。你只需重新构建同一套代码库,就能看看新工具链能带来怎样的表现。Delphi 13.2 让这一对比在 Linux 平台上显得尤为有意思。

Delphi 13.1(及更早版本)依赖于 LLVM 3.3,而 Delphi 13.2 则跨越了十年的编译器演进,直接升级到了 LLVM 20.1。

 

我之前已经通过一些内部测试部署了三个WebBroker实例,所以我心想:如果我用两种编译器版本分别构建每个实例,并对它们进行相同的负载测试会怎样?做完之后,我要告诉你一些事情:结果并不微妙。在CPU密集型工作负载下,吞吐量提高了254%至390%,而单请求延迟下降了71%至78%。

但正如往常一样,那些百分比背后有一个重要的限定条件,而它始于我运行的第一个测试。

 

 

如何自行运行 LLVM 基准测试

如果你想在自己的环境中运行这些测试,我在 GitHub 仓库中整理了一个简化版的项目文件。

 

该仓库包含:

  • linux-work-bench:一个用于CPU例程的控制台计时器,它完全剥离HTTP开销以测量原始执行速度。
  • webbroker-standalone:一个独立的 WebBroker 服务器,包含一个 PowerShell 脚本,用于自动化 Bombardier 测试运行。

 

使用 Delphi 13.1 和 13.2 通过 PAServer 为 Linux64 构建两个项目,并以 Release 模式进行。代码会自动打印(或返回)一个校验和,以便您在比较时间之前验证两个构建是否生成了相同的输出。

在这个测试环境中,升级到 13.2 使得 CPU 密集型任务的请求延迟降低了 70% 以上,而无需修改一行代码。如果你在 Linux 上运行 Delphi 服务,升级到 13.2 可能是你今年能获得的最快性能提升。

 

 

详细内容请参考:What Happens When Your Compiler Jumps 12 Years of LLVM Evolution?

0.680195s