ROA*_*OAR 28 c++ ide compiler-construction visual-studio
有人在这里使用英特尔C++编译器而不是微软的Visual c + +编译器吗?
我非常有兴趣听听您在集成,性能和构建时间方面的经验.
Tom*_*sen 27
英特尔编译器是可用的最先进的C++编译器之一,它具有许多优于例如Microsoft Visual C++编译器的优点,并且具有一个主要缺点.优点包括:
非常好的SIMD支持,据我所知,编译器对SIMD指令有最好的支持.
支持自动并行化(多核优化)以及手动(通过OpenMP),并且非常好.
支持CPU调度,这非常重要,因为它允许编译器在程序运行时将处理器作为优化指令的目标.据我所知,这是唯一可用的C++编译器,除非G ++已经将它们引入了它们.
它通常附带优化的库,例如数学和图像库.
但是它有一个主要的缺点,如上所述的调度程序只能在Intel CPU上运行,这意味着AMD cpu上会省略高级优化.有一种解决方法,但它仍然是编译器的主要问题.
要解决调度程序问题,可以替换使用在AMD处理器上运行的版本生成的调度程序代码,例如可以使用Agner Fog的 asmlib库替换编译器生成的调度程序函数.关于调度问题的更多信息,以及对某些主题的更详细的技术解释,可以在C++文章中的优化软件中找到- 也来自Anger(非常值得一读).
在个人方面,我使用了英特尔c ++编译器和Visual Studio 2005,它运行得很完美,我没有遇到微软特定语言扩展的任何问题,它似乎理解我使用的那些,但也许John Knoeller提到的那些是与我在项目中的不同.
虽然我喜欢英特尔编译器,但我目前正在使用微软C++编译器,这仅仅是因为英特尔编译器需要额外的投资.我只会使用英特尔编译器作为Microsofts或GNU编译器的替代品,如果性能对我的项目至关重要,并且我有一个财务部分;)
我只有一次使用这个编译器的经验,编译STLPort.MSVC花了大约5分钟来编译它,ICC编译了一个多小时.看来他们的模板编译速度很慢.除此之外,我听说过它的好消息.
这里有一些有趣的东西:
英特尔的编译器可以生成不同版本的代码片段,每个版本都针对特定的处理器和/或指令集(SSE2,SSE3等)进行了优化.系统检测它正在运行的CPU并相应地选择最佳代码路径; 调度的CPU调度程序.
"但是,英特尔CPU调度程序不仅检查CPU支持哪个指令集,还检查供应商ID字符串,"雾详细信息",如果供应商字符串显示"GenuineIntel",则它使用最佳代码路径. CPU不是来自英特尔,在大多数情况下,即使CPU与更好的版本完全兼容,它也会运行最慢版本的代码."
OSnews的文章在这里
| 归档时间: |
|
| 查看次数: |
13700 次 |
| 最近记录: |