visual C++ 的优化选项分别都是什么意思?

visual C++ 的优化选项分别都是什么意思?,第1张

Od:编译器不做优化,通常debug的使用这个编译选项

O1:代码最小,使用这个选项编译出来的二进制文件是最小的,但是可能会牺牲一些执行效率

O2:编译出来的代码执行速度最快,但是大小会比O1大(release默认)

Ox:对程序进行最大优化,可能会牺牲一些兼容性问题等,对执行速度和二进制文件大小都尽可能优化

根据特定的使用环境,选择合适的数据结构,比如用于接收网络数据的消息队列用链接就比其它数据结构好,没有最好的数据结构,只有最合适的数据结构

2.

能使用指针 *** 作的尽量使用指针 *** 作,一般来说,指针比较灵活简洁,对于大部分的编译器,使用指针生成的代码更短,执行效率更高。

3.

递归调用尽量换成内循环或者查表解决,因为频繁的函数调用也是很浪费资源的

4.

还是就是一些针对运算上的细节优化了,很多初学者是忽视了,具体是下面这些情况 1)、求余、求2n方运算 a=a%8...

个人理解:

1)说的是程序是要供人去读,去维护,因此不能为了效率牺牲这方面的性能,导致程序难以理解,维护。那样,正确性,可靠性及健壮性就无从谈起了。

2) 是说要首先着眼于全局的优化,譬如路径是否合理,有没有多余的步骤,有没有多余的循环?

3) 找出瓶颈的意思是说,程序可能由若干步骤、若干部分组成。有可能大多数步骤的效率都是100,个别步骤的是10,你应该先优化效率低的这些地方。

4) 数据结构与实际要描述的对象,你要进行合理的优化,去除不必要的冗余,等等。而算法的优化,你可以看一个在一列排好序的数列中查找一个给定数的算法,一般讲算法的书上。采用不同的算法效率是大不一样的,这比仅仅优化代码的效果要好得多。

5) 效率分为(存储)空间效率和时间效率,这两者一般比较难以统一,往往要在两者之间权衡。不过随着计算机技术的发展,现在一般计算机都可以提供足够的空间,因此空间效率往往已经不成为问题了。你只要专注于提高时间效率就可以了!

6) 紧凑的代码主要是去除了好多必要的格式字符达成的。实际执行的机器码都是经过编译产生的,而编译过程中机器会自动过滤掉格式字符,因此是否去除格式字符对编译产生的机器码没有什么影响。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12170197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存