iOS开发 - 在状态栏显示FPS,CPU和内存信息
2019独角兽企业重金招聘Python工程师标准>>>
前言
今天在用Instruments分析App的时候,总感觉看起来不太直观。到Github上找了找,发现几乎都是只显示FPS的,而且效果也不是我想要的。于是就自己写了个
源码地址
- LHPerformanceStatusBar
效果
字体颜色会根据阈值进行颜色变化,性能差的时候字体会变成红色,性能一般的时候会变成橘黄色,阈值可配。
集成
CocoaPod集成
pod LHPerformanceStatusBar
- 1
使用
- (void)viewDidAppear:(BOOL)animated{[super viewDidAppear:animated];[LHPerformanceMonitorService run];
}
- 1
- 2
- 3
- 4
原理
FPS的计算
CoreAnimation有一个很好用的类CADisplayLink
,这个类会在每一帧绘制之前调用,并且可以获取时间戳。于是,我们只要统计出,在1s内的帧数即可。
- (void)envokeDisplayLink:(CADisplayLink *)displayLink{if (_lastTimestamp == -1) {_lastTimestamp = displayLink.timestamp;return;}_countPerFrame ++;NSTimeInterval interval = displayLink.timestamp - _lastTimestamp;if (interval < 1) {return;}_lastTimestamp = displayLink.timestamp;CGFloat fps = _countPerFrame / interval;//...
}
内存和CPU信息的获取
CPU和内存的获取采用了mach头文件中的方法,调用了底层API,采用C方式来获取。
- LHPerformanceUtil
转载于:https://my.oschina.net/mexiaobai1315/blog/1570918
iOS开发 - 在状态栏显示FPS,CPU和内存信息相关推荐
- ubuntu系统中查看本机cpu和内存信息的命令和用法(分色排版)
https://zhidao.baidu.com/question/192966322.html 写出ubuntu linux系统中查看本机cpu和内存信息的命令和用法,以及如何解读这些命令 ubun ...
- Android获取cpu和内存信息、网址的代码
android获取手机cpu并判断是单核还是多核 /** * Gets the number of cores available in this device, across all proces ...
- linux中查看cpu和内存的命令,Linux系统如何查看cpu和内存信息
Linux系统,其实并不是很多人都在使用,所以很多人第一次接触这个系统,很多操作都不会,下面就让学习啦小编教大家Linux系统如何查看cpu和内存信息吧. Linux系统查看cpu和内存信息的方法 右 ...
- python查看物理内存和交换区的统计信息_使用python获取CPU和内存信息的思路与实现(linux系统)...
linux里一切皆为文件,在linux/unix的根文件夹下,有个/proc文件夹,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc&qu ...
- 使用python获取CPU和内存信息的思路与实现(linux系统)
From: http://blog.csdn.net/preterhuman_peak/article/details/40649229 linux里一切皆为文件,在linux/unix的根目录下,有 ...
- python读取linux内存_使用python获取CPU和内存信息(linux系统)
大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/pro ...
- 查看服务器虚拟化、CPU、内存信息
1.虚拟化信息查看 windows10系统我们可以使用任务管理器进行查看,打开任务管理器,找到性能页,右下角虚拟化显示:已启用就是开启了虚拟化功能 linux系统通过命令dmesg | ...
- 查看虚拟机服务器内存,查看服务器虚拟化、CPU、内存信息
1.虚拟化信息查看 windows10系统我们可以使用任务管理器进行查看,打开任务管理器,找到性能页,右下角虚拟化显示:已启用就是开启了虚拟化功能 linux系统通过命令dmesg |grep kvm ...
- windows linux C/C++获取操作系统、CPU、内存信息、硬盘、IP和MAC
Windows 操作系统和内存信息在windows下通过系统的API来获取,CPU信息则需要需要通过底层CPUID指令取得 代码: #include <iostream> #include ...
最新文章
- C++ JsonCpp 使用(含源码下载)
- pip安装更新、第三方库对应的python解释器版本、pip安装第三方库,压缩包离线安装,pycharm快捷安装及pycharm中terminal的使用,timeout超时报错
- Raft 集群成员变更、日志压缩、客户端交互
- 报道 | AI 2000 人工智能全球最具影响力学者榜单:美国领跑,中国第二,德国第三...
- OpenCV与gcc和CMake一起使用
- java刘保_[SSH] Eclipse+Struts2的简单应用
- 【指标需求思考】如何做好指标类需求建设
- sql管理:索引超出范围必须为非负值并小于集合大小_java面试基础知识-数据库基础知识(数据库索引部分)...
- sql 整改措施 注入_SQL注入入侵防范措施
- mysql 参数调整_mysql需要调整的参数-阿里云开发者社区
- 项目管理修炼之道之估算工作
- 【vs调试】PDB 文件:每个开发人员都必须知道的
- 夜间灯光数据下载(DMSP/OLS,NPP/VIIRS、珞珈一号网址)
- cmake的安装与基本使用
- 最大化参数 火车头_新手必看的火车头采集器使用入门教程_图文解说版!(看完包会)...
- html表单 多行输入文字,如何在HTML中创建多行文本输入(文本区域)?
- Mybatis-Plus实现乐观锁配置
- IDEA开发工具调试技巧(极大提升开发效率)
- 《Activiti 深入BPM工作流》--- 什么是activiti的Service, 如何创建?
- c语言 error c1004,c++中出现fatal error C1004: 发现意外的文件尾的错误怎么解决啊
热门文章
- DHCP服务、NFS、vsftp服务的简单搭建
- 综述:全国软考首遭试卷丢失 20万考生措手不及
- aspx页面中文汉字显示为乱码
- 是什么构成了“人工智能”热潮?
- Centos 6 系统镜像光盘做YUM源
- PHP Object对象转换为Array数组
- 安卓开发12:安卓各种事件操作
- (九)企业分布式微服务云SpringCloud SpringBoot mybatis-服务链路追踪(Spring Cloud Sleuth)...
- 与Flutter第一次亲密接触-Android 视角
- Linux shell 字符串转数字进行运算符操作