Heim Datenbank MySQL-Tutorial cygwin环境下gprof+gprof2dot+dot生成函数关系结构图

cygwin环境下gprof+gprof2dot+dot生成函数关系结构图

Jun 07, 2016 pm 03:32 PM
cygwin 环境

在linux环境下利用gcc/g编译链接代码的时候,加入-pg选项,在执行文件后就会生成gmon.out,gmon.out记录了函数在cpu运行的时间和被哪些函数调用的次数,关于gprof的使用和原理说明可以参数这两篇文章《linux下的程序分析工具——gprof 》、《Linux性能评测工

     在linux环境下利用gcc/g++编译链接代码的时候,加入-pg选项,在执行文件后就会生成gmon.out,gmon.out记录了函数在cpu运行的时间和被哪些函数调用的次数,关于gprof的使用和原理说明可以参数这两篇文章《linux下的程序分析工具——gprof 》、《Linux性能评测工具之一:gprof篇》。步骤如下:

      1.gcc -Wall -pg test.c -o test

      2../test.exe (由于我是在windows环境下用cygwin的,所以生成有exe后缀)

      3.gprof -b ./test.exe >report.txt

     生成的flat profile和call graph如图1。

 cygwin环境下gprof+gprof2dot+dot生成函数关系结构图

图1

        从图1中可以看出gprof生成的都是文字描述,我们可以利用gprof2dot.py脚本把数据转化成dot格式,再利用dot生成一张函数关系图。

        cygwin配置环境要求下:

        1.安装python。

        2.gprof2dot.py(网上有得下载),下载后放在/bin/目录就可以了。

        3.安装graphviz,直接搜索graphviz,如图2,然后安装。

cygwin环境下gprof+gprof2dot+dot生成函数关系结构图

图2

       gprof2dot默认是部分函数调用图,如果要显示全部的函数调用关系,可以用gprof2dot -n0 -e0。默认的设置可以直接参数gprof2dot.py,截图如图3。

cygwin环境下gprof+gprof2dot+dot生成函数关系结构图

图3

       安装好之后,执行如下命令:

       gprof -b ./test.exe|gprof2dot.py |dot -Tpng -o test.png或者

       python /bin/gprof2dot.py report.txt | dot -Tpng -o test.png

       这就生成了一张函数关系图了,如图4。

     cygwin环境下gprof+gprof2dot+dot生成函数关系结构图

图4

        以上都是今天下午的学习成果,总结了网上一些文章所说的和自己动手实践成果。但是我一点都不懂graphviz和dot,这是值得我拓展的地方!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Windows-Wiederherstellungsumgebung kann nicht gestartet werden Die Windows-Wiederherstellungsumgebung kann nicht gestartet werden Feb 19, 2024 pm 11:12 PM

Die Windows-Wiederherstellungsumgebung kann nicht gestartet werden

Was sind die Unterschiede zwischen Python und Anaconda? Was sind die Unterschiede zwischen Python und Anaconda? Sep 06, 2023 pm 08:37 PM

Was sind die Unterschiede zwischen Python und Anaconda?

Verschiedene Möglichkeiten, Shell-Skriptdateien unter Windows auszuführen Verschiedene Möglichkeiten, Shell-Skriptdateien unter Windows auszuführen Apr 13, 2023 am 11:58 AM

Verschiedene Möglichkeiten, Shell-Skriptdateien unter Windows auszuführen

Was sind die integrierten PHP-Umgebungspakete? Was sind die integrierten PHP-Umgebungspakete? Jul 24, 2023 am 09:36 AM

Was sind die integrierten PHP-Umgebungspakete?

11 Möglichkeiten zum Festlegen von Umgebungsvariablen unter Windows 3 11 Möglichkeiten zum Festlegen von Umgebungsvariablen unter Windows 3 Sep 15, 2023 pm 12:21 PM

11 Möglichkeiten zum Festlegen von Umgebungsvariablen unter Windows 3

Häufige Probleme und Lösungen für die Laravel-Umgebungskonfigurationsdatei .env Häufige Probleme und Lösungen für die Laravel-Umgebungskonfigurationsdatei .env Mar 10, 2024 pm 12:51 PM

Häufige Probleme und Lösungen für die Laravel-Umgebungskonfigurationsdatei .env

Entdecken Sie die Gemeinsamkeiten und Unterschiede zwischen Pipenv-Umgebungen und virtuellen Umgebungen Entdecken Sie die Gemeinsamkeiten und Unterschiede zwischen Pipenv-Umgebungen und virtuellen Umgebungen Jan 16, 2024 am 08:50 AM

Entdecken Sie die Gemeinsamkeiten und Unterschiede zwischen Pipenv-Umgebungen und virtuellen Umgebungen

So konfigurieren Sie die Go-Sprachumgebung So konfigurieren Sie die Go-Sprachumgebung Jan 06, 2021 am 11:37 AM

So konfigurieren Sie die Go-Sprachumgebung

See all articles