性能之颠 | simpleperf分析程序性能,生成火焰图

定义Simpleperf 是Google随NDK一起发布的一款profile工具(注:从NDK r13开始),它是针对Android平台的一个 native 层性能分析工具。使用步骤本篇是分析运行在android设备下的程序1. 将NDK中Simpleperf工具的可执行程序 push 到手机上cd <NDK>/simpleperf/bin/android/<对应的版本,根据被测

- 阅读全文 -

Linux内核 | 内核同步

1. 定义临界区和竞争条件临界区:访问和操作共享数据的代码段 竞争条件:多个执行线程在一个临界区同时执行死锁:每个线程都在互相等待,但它们永远也不会释放占用的资源。自死锁:一个执行线程试图去获取一个自己已经持有的锁,它不得不等待锁释放,但因为它忙于等待这个锁,所以自己永远也不会有机会释放释放锁。2. 设计规则以下简单规则避免死锁按顺序加锁防止发生饥饿不要重复请求一个锁设计简单-复杂加锁机制,越可能

- 阅读全文 -

Linux内核 | 中断机制

1. 中断中断是一种硬件信号,由具体的硬件设备产生的。不同的硬件设备对应唯一的中断号,处理器是通过中断号(IRQ n)识别不同的硬件设备,并执行对应的中断处理程序或中断服务例程(ISR)。2. 中断处理机制中断处理系统在Linux中是非常依赖体系结构的,硬件设备产生中断,通过总线把电信号发送到中断控制器,如果中断线是激活状态(中断线是允许被屏蔽的),中断处理器会将中断信号发往处理器,处理器会立即停

- 阅读全文 -

Native程序中引入Binder库

目前最新的ndk环境中,不包含binder库。下载安卓源码,将下面两句加入Android.mk文件,在源码中利用mm命令作为子模块进行单独编译,优点:简单,缺点:编译速度慢,需要依赖安卓源码,不利于协同开发LOCAL_SHARED_LIBRARIES := libutils libcutils libbinder liblog LOCAL_C_INCLUDES += frameworks/nati

- 阅读全文 -

Git和Repo详细使用教程

1.用户配置git config --global user.name "hqber" git config --global user.email hqber@qq.com --local>--global>--system //查看配置 git config -l2.Git三棵树工作区:就是你在电脑里能看到的目录。暂存区:英文叫 stage 或 index。

- 阅读全文 -

Linux内核 | 进程调度

1. 进程调度原理最大限度地利用处理器时间,只要有可以执行的进程,那么就总会有进程正在执行。按多任务系统分类抢占式多任务非抢占式多任务按进程分类IO消耗型:进程的大部分时间用来提交I/O请求或是等待I/O请求。处理器消耗型:进程的大部分时间在执行代码1.1 进程优先级根据进程的价值和其对处理器的时间需求对进程进行分级。Linux采用了两种优先级范围nice值,范围[-20,19],nice值越大,

- 阅读全文 -

爬坑 | Centos7安装gitbook

Centos7安装gitbook安装npm(Node Package Manager) 从node.js的官网(https://nodejs.org/en/)上下载安装程序,即可完成Node.js和npm的安装。Centos安装gitbooknpm install -g gitbook-cli出现错误npm ERR! path /Users/aven/node-red/node_modules

- 阅读全文 -

爬坑 | centos7生成ssl数字证书

1.查看是否安装httpd和SSL(如果有就可以进行下一步)$ rpm -qa | grep httpd httpd-tools-2.4.6-80.el7.centos.1.x86_64 httpd-2.4.6-80.el7.centos.1.x86_64 $ rpm -qa | grep ssl openssl-1.0.2k-12.el7.x86_64 python-backports-s

- 阅读全文 -