首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
IOS性能优化
订阅
zach
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
APP卡顿总结
监控APP卡顿的三种方式 FPS 子线程ping主线程 Runloop FPS检测APP卡顿 通常情况下,屏幕会保持60hz/s的刷新速度,每次刷新时会发出一个屏幕刷新信号,CADisplayLink
006-cache_t分析
通过这篇文章可以获得什么 cache_t是什么? cache_t部分源码分析 关键函数insert分析 为什么要清空oldBuckets,而不是空间扩容,然后在后面附加新的缓存呢? reallocat
iOS底层学习——类的结构探索
大拿之路,任重道远!isa走位,superclass的走位;类的结构分析和探索;rw、ro、rwe的分析和补充!
[译] AsyncDisplayKit/Texture 官方文档(1)
Node 可以异步绘制,且线程安全,你可以在在异步线程中进行实例化和配置它们的层级结构。 为了保持用户界面的流畅,你的 App 应该以 1/60 秒的帧率呈现, 这意味着主线程有 1/ 60 秒来处理一帧,也就是说,主线程需要在 16 毫秒内来执行所有的布局和绘图代码,而由于一…
[译] AsyncDisplayKit/Texture 官方文档(2)
熟悉 Flexbox 的人会注意到这两个系统有许多的相似之处, 但 Layout API 并没有重新实现所有的 CSS。 布局规则没有物理存在,它通过充当 LayoutElements 的容器,理解多个 LayoutElements 之间的关联,完成 LayoutElement…
深入探索 iOS 卡顿优化
FPS:Frames Per Second,表示每秒渲染的帧数,通过用于衡量画面的流畅度,数值越高则表示画面越流畅。 CPU:负责对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)。 GPU: 负责纹理的…
iOS底层探索 - 线程私有数据
多个函数共享数据时,除了通过函数间的返回值传递,还可以使用全局变量。在多线程的环境下,全局变量会被各个线程共享,如果我们需要只在单个线程所执行的函数间共享数据,例如要记录每个线程所执行过的函数名称,该如何做呢? 可以通过创建 线程私有数据(TSD: thread specifi…
iOS底层探索 - 理解Tagged Pointer
2013年9月苹果推出iPhone5s,iPhone5s配备首个64位架构处理器。正常情况下,数据类型所占字节数与CPU位数息息相关,例如一个NSNumber对象,在32位CPU下数据占用4个字节,指向它的指针类型也是4个字节,固创建一个NSNumber对象要占用8个字节;在6…
iOS优秀第三方源码解析(一、深入理解fishhook源码)
但MethodSwizzling只能对Objective-C方法进行Hook,如果要对C/C++方法进行Hook操作,可以使用facebook提供的fishhook框架,本文是对该框架的解读。 首先,我们需要了解几个常见的概念,有助于后面源码的阅读。 Mach-O: 在iOS和…
iOS底层探索 - 通过objc_msgSend实现iOS方法耗时监控
如果有这么一个需求,要监听所有OC方法的耗时时间,我们要如何实现?本文将描述如何利用 fishhook 去拦截底层的 objc_msgSend 实现,从而达到监控所有 OC 方法的目的。 Ps: 本文不涉及 objc_msgSend 源码解析,只专注于 Hook及耗时统计。对其…