对于程序性能优化的理解
来源:互联网 发布:linux查看服务器ip 编辑:程序博客网 时间:2024/05/27 20:48
众所周知,C语言是编译型语言,而一般使用的GCC对程序的编译是在保证不会产生歧义的情况下对程序进行优化的,GCC编译器也可以设置其的优化程度,但更高的优化级别会使程序规模增加,不易用标准的调试工具进行调试。一般采用的优化级别为 -02,所以说这需要程序员优化自己的代码,以提高程序的表现。
其中书中举了几个例子来说明编译器无法优化的情况,第一个为储蓄名别名使用,即一个指针对另个指针进行赋值时,编译器会考虑到两个指针可能指向同一个地址,从而采用了更谨慎的优化。另一种情况是在函数调用时,一个函数对另一个函数进行调用时,另一个函数每次调用可能会产生副作用,如改变全局变量等。内联函数可以改善这个情况,即将函数调用替换为函数体,这样既可以减少函数的调用,也能使编译器进行更好的优化。
在程序方面对性能进行优化要考虑以下几点:
(1):消除循环的低效率 (2):减少过程调用 (3):消除不必要的储存引用
即尽可能的将需要反复调用的函数与储存通过程序员的优化来提高性能。
从上方图片可看到,-02优化在循环中不使用movss指令,而是直接将product储存在寄存器里,在寄存器上保存数据,而-01优化是每次循环时,都从储存中读取数据转移至寄存器进行乘法运算,再把得到的值储存回%ebp指向的地址,比 -02 优化多进行了一次读的操作。
0 0
- 对于程序性能优化的理解
- 程序性能的优化
- 深入理解计算机系统:优化程序性能
- 《深入理解计算机系统》优化程序性能
- 程序性能优化-深入理解计算机系统
- 优化程序性能—《深入理解计算机系统》
- 深入理解计算机系统:优化程序性能
- 优化程序性能(《深入理解计算机系统》)
- 深入理解计算机系统--优化程序性能
- 《深入理解计算机系统》—优化程序性能
- cs app深入理解计算机系统:第五章 优化程序性能 几个优化的java实现
- JAVA程序的性能优化
- ASP程序的性能优化
- Java程序的性能优化
- Java程序的性能优化
- java程序的性能优化
- TOM对于性能优化的话
- 如何优化服务器的性能--优化程序
- 查看Linux服务器的所占用的IP地址
- Spring Data MongoDB 二:添加、删除操作
- 服务器处理能力,你估算正确过吗?
- Spark专家 王家林系列Scala 课程 (1)
- 新博客,新起点!
- 对于程序性能优化的理解
- 写在Demo战斗系统之前,先用原型工具做套UI第一篇-登录界面
- poj2449 Remmarguts' Date A*搜索
- Swift:Extension和Protocol
- HDU 2674 N!Again【数学&&同余定理】
- iOS 数据存储-偏好设置
- linux初学(五)之linux系统常用命令
- gcc不常用但也很重要的编译选项
- Bootstrap全局CSS样式之表格