MyException - 我的异常网
当前位置:我的异常网» C++ » 针对网上VC和GCC效率争论,小弟我有想法

针对网上VC和GCC效率争论,小弟我有想法

www.MyException.Cn  网友分享于:2013-04-24  浏览:57次
针对网上VC和GCC效率争论,我有想法
到底是VC生成的exe效率高还是gcc的效率高,网上争论不休,每个人都有自己的实验论据,我以素数搜索算法做了个实验,这个算法本身不能说明什么,很简单的逻辑,不过我以不输出结果、输出结果到文件和输出结果到控制台分别实验,发现了一些规律,似乎可以解释网上为什么大家自说自话,没有统一的结论。

纯C编写的快速搜索素数算法,代码比较长,为了加速,还有素数表(2-65521),分别用VC2008和mingw 4.4.0编译
VC用release版O2优化,Mingw用release版O3优化。
搜索小于1000万的素数的结果,共664579个素数
VC:4.383s
Mingw:5.582s
VC胜出,这是IO可以几乎忽略不计的情况。

但是加上文件处理,输出结果到文件(硬盘太慢,我输出到ramdisk)
搜索小于10万的素数:
VC:0.020s
Mingw:0.018s
Mingw略快

搜索小于100万的素数:
VC:0.298s
Mingw:0.313s
这里却变成了VC略快,可能由于上限大了以后,IO开销的比例就下降了,毕竟数字越大,素数比例越低

上限改成1000万:
VC:4.935s
Mingw:5,878s
VC优势更明显了,很明显VC的优势在算法,GCC的优势在IO

为了更好的验证,我们把文件输出改成控制台输出:
小于10万:
VC:0.570s
Mingw:0.425s
Mingw优胜

小于100万:
VC:4.838s
Mingw:3.147s
Mingw优势更明显,说明在控制台IO输出上,Mingw有更大的优势,这里是用的stdio.h,我还测试了c++输出流,Mingw优势更大,VC的iostream效率低是出了名的,就不列数据了,这点大家没有争议

这样就很明显了,之所以大家会得出不同的效率测试结论,机关就在于有些人的测试程序算法多,有些人的测试程序IO多,至于linux用户对VC的不良印象,还得加上Windows(图形内核)用户控制台的低效与linux命令行(文本内核)的高速的因素,同样的硬件,分别在Windows和linux下测试VC和GCC,IO测试的差距就更大了,算法测试应该变化不大,而图形测试则是Windows优势巨大

------解决方案--------------------
but,mingw用的crt是vc的crt啊,io部分现实应该是一样的..
印象中,gcc很喜欢对齐.
------解决方案--------------------
GCC是什么-.-
真是孤陋寡闻... 丢人啊啊啊..
------解决方案--------------------
如果是GUI程序,确实VC在时间和空间上都有较大优势。
------解决方案--------------------
io也依赖系统的
------解决方案--------------------
探讨
but,mingw用的crt是vc的crt啊,io部分现实应该是一样的..
印象中,gcc很喜欢对齐.

------解决方案--------------------
有道理。
测运算效率的程序应想各种办法降低其它因素造成的误差,尤其是I/O。
一段程序一旦涉及到I/O,那它的大部分时间可能都在I/O上了。
------解决方案--------------------
探讨
跑算法的编译器,没有能超过ICC的!

------解决方案--------------------
windows上一般都用VC了

------解决方案--------------------
这样的效率比较其实没有什么意义。使用profile是第一准则
------解决方案--------------------
视情况而定~~不一定要争论个贵贱高低……
------解决方案--------------------
围观中。。

文章评论

程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Java程序员必看电影
Java程序员必看电影
那些争议最大的编程观点
那些争议最大的编程观点
老程序员的下场
老程序员的下场
如何成为一名黑客
如何成为一名黑客
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
我的丈夫是个程序员
我的丈夫是个程序员
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员必看的十大电影
程序员必看的十大电影
编程语言是女人
编程语言是女人
10个调试和排错的小建议
10个调试和排错的小建议
漫画:程序员的工作
漫画:程序员的工作
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
我是如何打败拖延症的
我是如何打败拖延症的
旅行,写作,编程
旅行,写作,编程
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
中美印日四国程序员比较
中美印日四国程序员比较
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
 程序员的样子
程序员的样子
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
每天工作4小时的程序员
每天工作4小时的程序员
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员都该阅读的书
程序员都该阅读的书
鲜为人知的编程真相
鲜为人知的编程真相
代码女神横空出世
代码女神横空出世
为什么程序员都是夜猫子
为什么程序员都是夜猫子
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有