C++ 最佳C&x2B+;windows build的编译器和选项,关于应用程序速度?

C++ 最佳C&x2B+;windows build的编译器和选项,关于应用程序速度?,c++,optimization,compiler-construction,C++,Optimization,Compiler Construction,我正在为windows、mac和GNU制作一个游戏,我已经可以用MSVC和MingW在windows上构建它了 但我并没有找到关于编译器选择大小的好信息 那么,我可以使用什么编译器和该编译器上的选项来使我的Windows版本快速运行呢 目前,探查器显示了一些令人担忧的结果,比如CPU时间的大部分被浪费在做简单的浮点运算上,以及在lua垃圾收集器上 编辑:我也在做其他事情。。。我问这个问题是专门针对编译器的,因为这个问题应该是一件事,而不是几件事:) 此外,任何轻微的速度提升都是好的,特别是在VS

我正在为windows、mac和GNU制作一个游戏,我已经可以用MSVC和MingW在windows上构建它了

但我并没有找到关于编译器选择大小的好信息

那么,我可以使用什么编译器和该编译器上的选项来使我的Windows版本快速运行呢

目前,探查器显示了一些令人担忧的结果,比如CPU时间的大部分被浪费在做简单的浮点运算上,以及在lua垃圾收集器上

编辑:我也在做其他事情。。。我问这个问题是专门针对编译器的,因为这个问题应该是一件事,而不是几件事:)


此外,任何轻微的速度提升都是好的,特别是在VSync打开的情况下,每秒1帧的60 FPS下降足以使游戏以30 FPS的速度运行以保持同步。

首先,不要期望编译器优化会产生巨大的变化。您很少能期望编译器之间的差异超过15%或20%(只要您不尝试将一个启用了所有优化的编译器与另一个完全禁用优化的编译器进行比较)

也就是说,最好的(尤其是F.p.数学)往往是英特尔的。这几乎是(充其量)其他人试图达到的标准(说实话,这种尝试通常是失败的)。获得最佳性能的具体选项各不相同——如果有一组始终是最佳的,则可能不包括其他可能性


然而,我要强调的是,要获得真正实质性的差异,您可能需要重写一些代码,而不仅仅是重新编译。

浮点数学适用于SIMD矢量化。是的。。。特别是速度慢,这是2D向量处理,出于某种原因,“x”比“y”慢,比如每次都有缓存丢失或其他情况……如果你做了很多向量数学,看看你正在使用的库可能会有好处。无意冒犯,但由于多年的研究,LAPACK将比我们任何人都能写的更快地完成这些类型的操作。@linuxuser27数学运算速度较慢的是ClanLIB 1.0(我有点被迫使用),如果需要的话,也许我可以稍后破解它的源代码。没错,优化通常在10-20%的范围内,但我也看到它在200-300%的范围内。这一切都取决于代码和编译器。我同意编译器不会解决所有问题,让优化器处于启用状态,-O2 for gcc,并专注于代码。