android ndk中使用gprof
1、下载gprof支持库
下载地址: http://code.google.com/p/android-ndk-profiler/
2、代码上的修改添加
在初始化时:
monstartup("yourlib.so");
在退出时添加:
setenv("CPUPROFILE", "/sdcard/gmon.out", 1);
moncleanup();
3、makefile文件修改:
由于-pg 和 -fomit-frame-pointer -ffunction-sections不能兼容,所以后两个编译参数不能用。
PIG = -pg
include=$(profiler_home)/android-ndk-profiler
libs += $(profiler_home)/android-ndk-profiler/armeabi/libandroid-ndk-profiler.a
4、在android手机上运行程序
adb pull /sdcard/gmon.out .
gprof yourlib.so
5、注意事项
有的时候出来的gmon.out,导出来的没有函数消耗时间统计。这个时间,就把monstart和moncleanup放在占用时间大的那个函数里面试试。
android ndk中使用gprof的更多相关文章
- Android NDK中的C++调试踩坑标记
RT, Android NDK中的C++调试, GDB调试比较麻烦,在ADT Eclipse中: 1.配置好NDK给工程加上Native Support 2.编译中加上NDK_DEBUG=1 3.然后 ...
- 关于Android NDK中调用第三方的动态库
因为最近在整合Android 上RTSP播放器的网络库,因需要调用自己编译的网络库,调用一直出现问题,开始时是直接在Android.mk 中加入LOCAL_SHARED_LIBRARIES := li ...
- 谈谈Android NDK中动态链接库(.so文件)的优化
做了不少NDK相关的工作,不知道别人有没有同样的困惑,经常在编译C/C++代码的时候会出一些error或者warning,然后在网上搜,发现在Android.mk或者Application.mk文件中 ...
- Android: NDK中的Android.mk和Application.mk
1. 简介 Android.mk 可用来描述要编译的某个具体模块的相关信息.比如:指定编译该模块时所需要的源文件.编译该模块时要链接的库文件.该模块编译完成后生成的库的名字等等.Applicatio ...
- 【记录一个问题】android ndk中不支持pthread_yield()
如题 使用这个函数报如下错误: error: use of undeclared identifier 'pthread_yield' pthread_yield(); 不得已,使用usleep(50 ...
- !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-opencv-development-3/ Android Ndk a ...
- Android NDK 和 OpenCV 整合开发总结(3)
Android NDK 和 OpenCV 整合开发总结(3) http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-open ...
- Android NDK调试C++源码(转)
[原创文章,转载请保留或注明出处,http://download.csdn.net/download/bigmaxim/5474055] 1. 相关软件 adt-bundle-windows-x86. ...
- Android NDK r9的配置与使用
Android NDK 配置: 网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享. 要玩NDK,你或多或少要用到以下一些东西,所以先做一 ...
随机推荐
- pdf.js使用爬过的坑
最近项目里需要做一个在浏览器直接预览pdf的功能,有些浏览器可以直接预览pdf文件,但是有些不能(不要躲,说的就是你IE)查资料普遍推荐pdf.js,兼容能到ie9,很不错了. 1. 从pdf.js官 ...
- suffix ACM-ICPC 2017 Asia Qingdao
Consider n given non-empty strings denoted by s1 , s2 , · · · , sn . Now for each of them, you need ...
- 使用summernote编辑器上传图片,重写onImageUpload
JS部分:$('.summernote').summernote({ height: 200,//高度 tabsize: 2,//页面上的summernote编辑框的个数 lang: 'zh-CN', ...
- Java基础04-数据的输入
1.为什么要有数据的输入? 实现人机进行交互 2.什么是数据的输入? 利用扫描仪Scanner进行数据输入 3.怎么使用扫描仪Scanner? (1)放在类声明之前,引入扫描仪 import java ...
- (转)在 VMware 中安装 HMC
在 VMware 中安装 HMC 原文:http://blog.csdn.net/ccie38499/article/details/14123493 http://www.54it.top/arch ...
- 解决 eclipse cdt 运行时控制台乱码解决
1 点击黑色 倒三角 按钮 选择 run configurations 2 2.1 点击new 添加 LANG = en_US 2.2 选择 replace native environment wi ...
- 换晶振导致stm32串口数据飞码的解决办法(补充)
今天(2014.4.21)把stm32f107的程序下载到stm32f103的板子上,发现串口收不到数据,突然想起晶振频率没有修改,#define HSE_VALUE ((uint32_t)13 ...
- C#委托(一)——说明及举例
C#命名空间下有五种类型,分别为: 类.构造.接口.枚举.委托. 委托被定义为5中基本类型的一种,也就意味着代码可以这么写: using System; namespace Test { delega ...
- 如何绘制ER图
先画出多个实体(用长方形表示),然后是联系类型(菱形),和属性(椭圆).
- jQuery中的CSS-DOM操作
html代码 <p style="color:blue;">武汉PHP培训-武汉长乐教育</p> css()方法 $("p").css( ...