Visual c++2005 (Visual c++ 8.0)优化概述

以前学习c++时,使用的是VC++6.0版本的,界面简洁,操作简单,容易上手。也许是先入为主吧,对它“感情”很深,一般都是用它,觉得它是一个经典版本,值得一用。可是它毕竟很老了,现在都已经有Visual C++ 2003.Net(VC++7.0)、Visual c++ 2005(VC++ 8.0)、Visual c++2008(VC++9.0),而且功能更加强大,界面更加漂亮更加人性化。有点像office2003和office2007的感觉。废话说多了,下面说点正经的:

VC++2005支持SSE2,VC++可以支持SSE4……我现在在做AVS视频编解码器去块效应滤波器基于SSE2指令集的优化,所以我就忍痛割爱,毅然决然放下vc++6.0,转向vc++2005。刚开始确实不习惯,可能是心理作用,可是用一段时间,觉得非常好用,果然很强大(废话)!咱用的是英文版的,基本上是使用默认设置,以前用vc++6.0 的时候也是使用默认设置。而且以前的编程的宗旨是:能正确运行就万事大吉了!现在不同了,要讲究效率问题,专业一点来说就是优化问题了。

今天一不小心使用了一些优化选项,结果让我感到Surprised:

默认设置(不使用优化选项):



结果很明显,总共解码时间为3.828秒。



使用优化选项:



结果依然很明显,总共解码时间为1.657秒。

哇,时间节省一半之多……如此惊人……

声明:并不是所有程序经过优化后,运行时间都会节省一半的。我的程序之所以优化效果这么明显就是因为我的程序可优化空间比较大。而对一些很简单的程序,比如1+1=2那种类型,优化与否没什么影响……

下面就来看看如何设置优化选项:

(1)Project -> *** Properties -> Configuration Properties -> C/C++ -> Optimization



Optimization : Maximize Speed Favor Size or Speed: Favor Fast Code



(2)Project -> *** Properties -> Configuration Properties -> C/C++ -> Code Generation



Enable Enhanced Instruction Set : Streaming SIMD Extentions 2(/arch:SSE2)

设置完后,重新生成解决方案,就OK了。现在回头看看,很傻瓜的。只是像我这样的菜鸟入门级的,从来没听说过,也没用过,第一次用起来还是有点难度的。毕竟万事开头难!还有一些其他的设置,具体情况酌情设置。

以上所说的只是给从来没使用过优化选项的或是没听说优化选项的朋友提供一些思路,权当是抛砖引玉吧。专业级的朋友就不要在这里浪费时间了,如发现什么错误,请毫不留情地拍板砖,谢谢!

你可能感兴趣的:(编程,C++,c,C#,vc++)