![]() |
1
5
我的经验是编译我的C++ JPEG-LS图像压缩项目。 http://charls.codeplex.com 对我来说,VisualC++是非常快的。 我主要是在Linux上用g++编译的。经过大量的调整,G++版本仍然是关于 10-15% 在同一硬件上(同一台物理机器,与Linux双引导)速度较慢。这是在搜索了几个小时的g++优化选项之后,这些选项实际上有所帮助。用默认优化编译G++比VisualC++更慢60%。 我的项目可能有点典型,因为它不是C,而是C++,需要编译器做很多内联。在两个编译器上,我都强制执行内联。 另外,我还得到一个解释,那就是x86的寄存器非常少,而且G++不擅长分配它们。 更新:要更全面地比较Microsoft和GNU编译器,请转到 this C compiler benchmark . 根据我如何阅读这些数字,32位的微软和GCC之间的差异是相当的,尽管GCC是通过配置文件引导优化(PGO)测试的,而微软没有(在VS Express中没有PGO)。 没有PGO,微软在32位上的速度更快。在64位上,gcc更快。英特尔仍然比任何一个平台都快。 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
MysteryMoose · GCC下故意忽略初始化器警告中的过量元素 7 月前 |
|
Ken P · 如何利用[*]printf格式类型规范警告? 11 月前 |
![]() |
fghoussen · 在C结构体中,为什么打包、对齐似乎会进行填充? 11 月前 |
![]() |
adversarr · 全局变量何时导出到可执行文件? 11 月前 |