C++ 有哪些性能分析工具

C++ 有哪些性能分析工具,第1张

如果你是在windows上,用VS开发,那么直接使用VS自带的性能分析工具就可以很方便地找到热点;

如果是在Linux上,还需要看你想分析的方向是什么。推荐的有这么几个比较好用的工具:

1、基于定时采样统计的gperftools,使用方法很简单,百度一下就能找到很多,其源码和工作原理分析可以看一下这篇文章:网页链接

2、如果你是用gcc编译的程序,可以使用gperf来统计每个函数的调用次数等报告,这种方式会比第一种方式得到更多的信息,编译的时候加上-pg选项,gcc就会给每个函数调用的入口和出口添加额外的追踪代码;

3、Linux 2.6内核之后,系统自带了一个perftool,非常强大,能进行系统级别的调试,找到包括cache命中率等这类非常底层的性能数据。

下载源码

安装

mkdir build

cd build

../autogen.sh

出现错误提示:

automake: cannot open <gtk-doc.make: No such file or directory

sudo apt-get install gtk-doc-tools

继续第二步

../autogen.sh

出现错误:

configure: error: You need the 'flex' lexer generator to compile WebKit

google 一下关于 flex的资料

Flex 是一个高效、免费的开源框架,可用于构建具有表现力的 Web 应用程序,这些应用程序利用 Adobe Flash Player和 Adobe AIR, 运行时跨浏览器、桌面和 *** 作系统实现一致的部署。虽然只能使用 Flex 框架构建 Flex 应用程序,但Adobe Flash Builder™(之前称为 Adobe Flex Builder™)软件可以通过智能编码、交互式遍历调试以及可视设计用户界面布局等功能加快开发。

网址: http://www.adobe.com/devnet/flex/flex-sdk-download-all.html

下载之后解压缩,发现不是我这里想要的source

百度了一下 flex ,在第一页的最下面一个网页,标题: flex: The Fast Lexical Analyzer

打开 http://flex.sourceforge.net/ 之后,看了一下介绍:

Flex is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text. The flex program reads user-specified input files, or its standard input if no file names are given, for a description of a scanner to generate. The description is in the form of pairs of regular expressions and C code, called rules. Flex generates a C source file named, "lex.yy.c", which defines the function yylex(). The file "lex.yy.c" can be compiled and linked to produce an executable. When the executable is run, it analyzes its input for occurrences of text matching the regular expressions for each rule. Whenever it finds a match, it executes the corresponding C code.

下载之后,安装成功,执行 flex --version ,显示:flex 2.5.37,安装成功.

继续第二步

../autogen.sh

出现错误:configure: error: You need the 'gperf' hash function generator to compile WebKit

gperf网址:http://www.gnu.org/software/gperf/

安装 gperf:

wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz

tar zxvf gperf-3.0.4.tar.gz

cd gperf-3.0.4/

./configure

make

make install

继续第二步

../autogen.sh

出现错误:configure: error: JPEG library (libjpeg) not found

IJG is an informal group that writes and distributes a widely used free library for JPEG image compression. The first version was released on 7-Oct-1991.

安装 jpeg library:

到http://www.ijg.org/找到下载源码的链接

wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz

cd jpeg-8d/

./configure

make

sudo make install

安装成功

继续第二步

../autogen.sh

出现错误:configure: error: PNG library (libpng) not found

libpng: http://www.libpng.org/pub/png/libpng.html

安装:

wget http://downloads.sourceforge.net/project/libpng/libpng15/1.5.13/libpng-1.5.13.tar.xz

tar xvf libpng-1.5.13.tar.xz

cd libpng-1.5.13

./configure

make

sudo make install

安装成功

继续第二步

../autogen.sh

libpng的错误仍然出现: configure: error: PNG library (libpng) not found

观察了一下编绎的配制过程:

checking for libpng... no

checking for libpng14... no

checking for libpng12... no

checking for png_read_info in -lpng... no

configure: error: PNG library (libpng) not found

checking的是libpng1.4版本,而刚才安装的是libpng1.5版本


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存