从 gcc 编译的可执行文件的性能优于从 LLVM 编译的可执行文件的性能是否正常?

Is it normal that the performance of executable compiled from gcc better than one compiled from LLVM?

我自己写了一些C代码,然后用LLVM或者gcc编译。

现在,我从两个编译器(LLVM 和 gcc)编译了两个不同的可执行文件,并且 运行 在这两个编译器上编译了 100,000 次。

我发现 gcc 的可执行文件的性能总是比 LLVM 好。

我知道它们是不同类型的编译器,甚至是不同的架构。

但为什么 gcc 在性能上总是优于 LLVM?是什么原因?

所以这是你的主要问题


问题

从gcc编译的可执行文件的性能比从LLVM编译的可执行文件的性能好是正常的吗?


虽然很有趣但显然是一个非常广泛的问题。因为编译器性能取决于很多因素。

  • 这在很大程度上取决于您的应用程序。
  • 这取决于底层架构和处理器
  • .........还有更多因素

除此之外,还有完善的 benchmarks 来验证编译器的性能。一个应用程序二进制文件表现更好不是正确的基准,因此不是确定的结果。

但是,由于应用程序性能(程序性能)受编译器选择的影响,因此在您的情况下,您看到 GCC 性能优于 LLVM 是完全有道理的,但是,它不一定总是发生在每个应用程序上.

为了您的进一步了解,请查看: