11. 手把手教你使用gprof性能分析工具
- 1. 什么是gprof?
- 1. 什么是gprof?
1. 编译器版本的问题
1. 你以为的system()调用
上一篇《Linux C++ 开发6 - GDB调试》中我们讲解了GDB的调试流程和常用的调试方法。GDB的调试指令众多,我们这里针对常用的指令做一个汇总(按功能分类),以便需要时进行查阅。
与Windows下C++开发相比,Linux下C++开发最大的困难就是程序的调试。
上一篇《4. 用makefile构建程序》我们讲解了通过Makefile来编译 包含多个.cpp和多个.h文件 的复杂C++项目。这种方式用来构建中小型的Linux(或类Unix系统)C++项目,是没有问题的。但如果是跨平台项目或者大型项目,Makefile就显得力不从心了;因为Makefile不具备良好的跨平台性,大型项目的编译规则和依赖项也是比较复杂的,Makefile的编写和维护成本都比较高。这时,CMake就可以派上用场了。
1. 什么是交叉编译?
上一篇《2. 编写、编译、执行第一个程序》我们编写了一个Hello world程序,并在Linux下完成了正常的编译和执行。
Linux C++ 开发 系列的前面2篇文章,我们介绍了通过g++来编译C++代码。这对于HelloWorld程序或者简单的Demo程序来说没有问题,但对于包含多个.cpp和多个.h文件的复杂项目来说,直接用g++命令来编译的话,将会使编译的指令非常冗长且难于维护。这个时候我们可以考虑用makefile来构建我们的程序。
1. Linux C++ 性能分析工具汇总
《10. gprof性能分析工具的用法》一文中,我们讲解了gprof工具的使用方法,本文将继续讲解valgrind工具的使用方法。
1. 安装GCC/GDB
上一篇《1. 搭建C++开发环境》我们搭建好了C++的开发环境,本篇我们将编写、编译、执行第一个程序。