一 : 程序构建
一般源代码提供的程序安装需要通过配置、编译、安装三个步骤;
配置做的工作主要是检查当前环境是否满足要安装软件的依赖关系,以及设置程序安装所需要的初始化信息,比如安装路径,需要安装哪些组件;配置完成,会生成makefile文件供第二步make使用;
编译是对源文件进行编译链接生成可执行程序;
安装做的工作就简单多了,就是将生成的可执行文件拷贝到配置时设置的初始路径下1.1 配置
1.2 编译
1.2.1 makefile编写的要点
1.2.2 makefile中的全局自变量
1.2.3 更多选择 CMake
1.2.4 编译依赖的库
1.2.5 g++编译
1.3 安装
1.4 总结
二 :进程调试
1.进程调试
1.1 gdb程序交互调试
1.2 pstack跟踪栈空间
1.3 strace分析系统调用
2.目标文件分析
2.1 nm:列出目标文件的符号清单
2.2 ogjdump工具:用来显示二进制文件的信息
2.3 readelf:和objdump命令提供的功能类似,但是它显示的信息更为具体
2.4 size:查看程序运行时各个段的内存占用
2.5 file:用于查看文件的类型,由哪个程序生成
2.6 fuser:显示文件使用者信息,显示所有正在使用着指定的file, file system 或者 sockets的进程信息
2.7 xxd:十六进制方式显示文件,只显示文本信息
2.8 od:查看特殊格式的文件内容。通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件息
性能优化的核心是找出系统的瓶颈点,问题找到了,优化的工作也就完成了大半; 这里介绍的性能优化主要从两个层面来介绍:系统层面和程序层面;
三 :性能优化
3.1. 分析系统瓶颈
系统响应变慢,首先得定位大致的问题出在哪里,是IO瓶颈、CPU瓶颈、内存瓶颈还是程序导致的系统问题;
使用top工具能够比较全面的查看我们关注的点:
$top
top - 09:14:56 up 264 days, 20:56, 1 user, load average: 0.02, 0.04, 0.00
Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id