首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
性能优化
订阅
不凡不繁
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
使用二进制重排 & Clang插桩技术对iOS冷启动做优化太爽了
1.冷启动 1.1 什么是冷启动? 冷启动是指内存中不包含该应用程序相关的数据,必须要从磁盘载入到内存中的启动过程。 注意:重新打开 APP, 不一定就是冷启动。 当内存不足,APP被系统自动杀死
iOS App冷启动优化
从用户点击App图标开始到appDelegate didFinishLaunching方法执行完成为止。 T2:main()函数之后,即从main()开始,到appDelegate的didFinishLaunchingWithOptions方法执行完毕前这段时间,主要是构建第一…
探究Time Profiler in Instruments 原理,并调研如何实现方法级耗时检查工具
Time Profiler是Xcode工具套件里自带的工具,我们可以通过它来很方便地监测方法的耗时,进而优化我们的App。 图上按照时间顺序从左到右,五条竖虚线分别代表了每隔一段时间(默认是1ms),TimeProfiler从应用中获得调用栈。先分析前两个虚线: 从这个过程中我…
iOS App启动优化(五):收集符号 && 生成 Order File
启动的相关方法可能在不同的线程执行,如果我们用一个数组直接收集这些符号,会出现线程问题。 听到多线程问题立马想到锁,但是这里因为锁耗费性能比较多所以不推荐使用。建议使用原子队列解决这个问题。 原子队列是栈结构,通过 队列结构 + 原子性 保证顺序。 启动的时候方法执行,__sa…
使用instrument(Time Profile)提高帧率实践
如果要反应CPU使用情况,第一反应是记录每个方法执行时间。然后根据调用堆栈把每个方法执行的时间累加起来,呈现给使用者来反应CPU使用情况。 Time Profile并没有事无巨细的记录每个方法的执行时间,而是使用了定时采样方式来反应CPU使用情况。 每隔1ms,Time Pro…
iOS性能优化 - 工具Instruments之Time Profiler
time profile时间分析工具用来检测应用CPU的使用情况,可以看到应用程序中各个方法正在消耗CPU时间,使用大量CPU不一定是个问题。客户端中动画就对CPU依赖就非常高,动画本身也是非常苛刻且耗费资源较多的任务。 Time Profiler帮助我们分析代码的执行时间,找…
iOS优化篇之App启动时间优化
最近由于体验感觉我们的app启动时间过长,因此做了APP的启动优化。本次优化主要从三个方面来做了启动时间的优化,main之后的耗时方法优化、premain的+load方法优化、二进制重排优化premain时间。 通常我们对于启动时间的定义为从用户点击app到看到首屏的时间。因此…
关于iOS内存的深入排查和优化
虚拟内存机制在这里就不多说了,主要包括内存管理单元MMU、内存映射、分段、分页。在iOS中,一页通常有16KB的内存空间。 分配内存的时候,先分配虚拟内存,然后使用的时候再映射到实际的物理内存。 一个VM Region指的是一段连续的虚拟内存页,这些页的属性都相同。 VM分为C…
iOS 优化篇 - 启动优化之Clang插桩实现二进制重排
( 本篇文章由于会从原理角度讲解 , 有些已经比较熟悉的同学可能会觉得节奏偏啰嗦 , 为了照顾大部分同学 , 大家自行根据目录跳过即可 . ) 了解二进制重排之前 , 我们需要了解一些前导知识 , 以及二进制重排是为了解决什么问题 . 在本篇文章里 , 笔者就不通过教科书或者大…
高德APP启动耗时剖析与优化实践(iOS篇)
最近高德地图APP完成了一次启动优化专项,超预期将双端启动的耗时都降低了65%以上,iOS在iPhone7上速度达到了400毫秒以内。就像产品们用后说的,快到不习惯。算一下每天为用户省下的时间,还是蛮有成就感的,本文做个小结。 要优化,首先要做到的是对启动阶段的各个性能纬度做分…