让人爱恨交加的Intel C++ Compiler
感谢CSDN网友提供的Intel C++ 11.0的license文件,呵呵,现在即便使用ICC的大多也在用9.0或10.0呢。
我的专业是信息安全,经常需要高效率的调用密码学库,这次的项目对效率要求极高,虽然我用VC编译的TomCrypt动态库效率已经达到要求了,T7300 CPU下AES加密速度已达到102MB/S,RSA1024密钥生成速度0.1s级,要知道我之前下载的许多算法RSA1024的密钥生成至少得0.5s。不过我还是想精益求精,改用ICC编译TomCrypt,VC2008编译界面程序。打开T7300可以使用的SSSE3优化,果然速度提高了5%,达到了109MB/S,要知道近10年来编译器效率提升至多也不过这个数。
虽然效果很明显,但是代价也大,首先就是体积,大了差不多60%(MFC界面程序如果用ICC编译就直接加倍了,介于此,再加上ICC对界面程序优化不大,我就没用ICC编译界面),而且编译链接时间多了几倍,内存占用超过500M……为了5%,忍了……
ICC最大的好处其实是对VC的几乎100%的兼容,VC代码用ICC编译不用做任何改动,本来么微软和Intel就是盟友,不构成竞争,ICC只能用VS做IDE就是明证(CodeBlocks也有ICC这一项,但是竟然无法像对VC和GCC那样自动识别,可见兼容性……),如果跑算法,CPU又是支持SSE3以上指令集的,ICC确实不错,不过也仅限于单独编译算法模块,界面等千万别用ICC,体积加倍效率不增……