ubuntu上编译和使用easy_profiler对C++程序进行性能分析
本文首发于个人博客https://kezunlin.me/post/91b7cf13/,欢迎阅读最新内容!
tutorial to compile and use esay profiler with c++ on ubuntu 16.04
Guide
compile
git clone https://github.com/yse/easy_profiler.git
cd easy_profiler && mkdir build && cd build && cmake-gui ..
make -j8
sudo make install
usage
CMakeLists.txt
find_package(easy_profiler REQUIRED)
#easy_profiler_Dir /usr/local/lib/cmake/easy_profiler
target_link_libraries(my_application easy_profiler)
code
#include <easy/profiler.h>
void foo() {
    EASY_FUNCTION(profiler::colors::Magenta); // Magenta block with name "foo"
    EASY_BLOCK("Calculating sum"); // Begin block with default color == Amber100
    int sum = 0;
    for (int i = 0; i < 10; ++i) {
        EASY_BLOCK("Addition", profiler::colors::Red); // Scoped red block (no EASY_END_BLOCK needed)
        sum += i;
    }
    EASY_END_BLOCK; // End of "Calculating sum" block
    EASY_BLOCK("Calculating multiplication", profiler::colors::Blue500); // Blue block
    int mul = 1;
    for (int i = 1; i < 11; ++i)
        mul *= i;
    //EASY_END_BLOCK; // This is not needed because all blocks are ended on destructor when closing braces met
}
void bar() {
    EASY_FUNCTION(0xfff080aa); // Function block with custom ARGB color
}
void baz() {
    EASY_FUNCTION(); // Function block with default color == Amber100
}
Reference
History
- 20191010: created.
Copyright
- Post author: kezunlin
- Post link: https://kezunlin.me/post/91b7cf13/
- Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.
ubuntu上编译和使用easy_profiler对C++程序进行性能分析的更多相关文章
- 在ubuntu上编译chrome
		在ubuntu上编译chrome 在ubuntu上编译chrome 红心地瓜 1.获取代码 1)下载tarball,http://chromium-browser-source.commondatas ... 
- 【转】Ubuntu 上编译Android出现cannot find -lstdc++解决办法
		[转]Ubuntu 上编译Android出现cannot find -lstdc++解决办法 在Ubuntu 12.04 x86_64机器上编译Android出现下面错误,是因为找不到32bit的li ... 
- (原)ubuntu上编译PANet/Detectron.pytorch时-std=c99的错误
		转载请注明出处: https://www.cnblogs.com/darkknightzh/p/10494787.html 在ubuntu上编译PANet/Detectron.pytorch时,总提示 ... 
- .NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)
		编译时间:北京2015年6月17日上午 操作系统:Ubuntu 14.04.2 LTS Mono版本:Mono JIT compiler version 4.3.0 (master/3445ac5 T ... 
- Qt+MPlayer音乐播放器开发笔记(一):ubuntu上编译MPlayer以及Demo演示
		前言 在ubuntu上实现MPlayer播放器播放音乐. Demo Mplayer MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布.此款软件 ... 
- Ubuntu上用快捷键关闭没有响应的程序
		Linux 上有很多方法可以强制关闭无响应的程序,比如你可以通过按快捷键 Ctrl + Shift + T 来调出 Terminal 或者用 Ctrl + Shift + F1 进入 Console ... 
- 在Linux Ubuntu上编译DNX
		DNX是.NET Execution Environment,前身是XRE,XRE的前身是KRuntime,项目网址:https://github.com/aspnet/DNX . 签出DNX的代码: ... 
- Ubuntu 上编译opencv_contrib模块for Android
		https://blog.csdn.net/ipfpm/article/details/81132144 [ubuntu]Ubuntu中Android SDK下载跟配置 android24的版本 (1 ... 
- 在64位Ubuntu上编译32位程序常见错误
		问 题1: 找不到头文件 asm/errno.h 解决办法 : [/usr/lib/gcc$ ]sudo ln -s x86_64-linux-gnu/asm asm 问题2:找不到gcc ... 
随机推荐
- Swing JTable使用
			package cn.ychx; import java.awt.Dimension; import java.awt.Toolkit; import java.sql.Connection; imp ... 
- 分布式事务解决方案,中间件 Seata 的设计原理详解
			作者:张乘辉 前言 在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响 ... 
- angular6路由参数的传递与获取
			1.访问路由链接:/test/id 路由配置: {path: 'test/:id', component: TestComponent} html传参: <a href="javasc ... 
- chrome显示正常,IE报400的错
			发现是因为参数里面有一个是中文,应该是IE没有转码,所以会报错,只要用encodeURI()实现转码即可 
- UWP GraphQL数据查询的实现
			1. 缘起 Facebook 的移动应用从 2012 年就开始使用 GraphQL.GraphQL 规范于 2015 年开源,现已经在多种环境下可用,并被各种体量的团队所使用. 在这个链接可以看到更多 ... 
- 《Java知识应用》Java Json说明和使用(fastjson)
			工具包下载:链接: https://pan.baidu.com/s/1dn5uNwiJ1ICkbPknlMmkHQ 提取码: ayzn 复制这段内容后打开百度网盘手机App,操作更方便哦 1.JSON ... 
- Python基础知识第八篇(集合)
			#集合是无序的#集合是不同元素组成的#集合是不可变的,列如:列表,字典,元组#创建空集合 s=set() # s={1,2,3,4,2} # print(s) #集合添加>>>> ... 
- [NOIP模拟]文本编辑器 题解
			bsoj5089 文本编辑器 /* 题意描述 九发明了一个完美的文本编辑器.这个编辑器拥有两个光标(cursor),所以九能够同时在两处地方插入和删除文本.这个编辑器除了正常的编辑功能以外,还有一些只 ... 
- 设备数据通过Azure Functions 推送到 Power BI 数据大屏进行展示(1.准备工作)
			本案例适用于开发者入门理解Azure Functions/ IoT Hub / Service Bus / Power BI等几款产品. 主要实战的内容为: 将设备遥测数据上传到物联网中心, 将遥测数 ... 
- .NET Core的JWT认证的学习
			今天学习下JWT,遇到了两个坑爹问题,这里记录下.在 ASP.NET Core 中,授权的设置方式有两种,可以使用角色,也可以使用策略,这里也将简单举例角色.策略的使用. JWT这里不做介绍,如果想了 ... 
