李峰峰博客

编译原理之 OC 编译

编译原理
一、低级语言与高级语言1、低级语言低级语言(Low-level Language)是接近计算机硬件的编程语言,是计算机可以直接执行或接近直接执行的语言。 常见的低级语言包括: 机器语言 计算机可以直接执行的二进制代码(即:机器码),由 0 和 1 组成。每一个机器指令对应于特定的处理器操 ...
阅读全文

APP 启动优化 3 - 二进制重排

优化
一、二进制重排原理1、Page In 与 二进制重排在前面总结的冷启动流程中已经提到了 Page In,这里再简单补充下,在 iOS 中,内存管理主要由操作系统、CPU 协同完成: 操作系统负责分配物理内存,并更新存放物理内存、虚拟内存映射关系的页表。 位于 CPU 上的 MMU(内存管理 ...
阅读全文

APP 启动优化 2 - 优化方案

优化
一、启动时长监控1、阶段划分一般而言,对于冷启动时长,一般是统计从用户点击图标到首屏展示出来这段时间的时长。这个过程可以粗粒度分为下面两个阶段进行统计:这里一般是使用 root viewController 的 viewDidAppear 时间作为首屏渲染完成时间,也就是 APP 首屏加载完 ...
阅读全文

APP 启动优化 1 - 冷启动流程

优化
iOS 的冷启动流程可用下图表示:接下来,详细介绍 APP 启动流程中的各个阶段: 一、exec()iOS 操作环境的操作系统部分是 Darwin,Darwin 是一种类 Unix 操作系统,其内核是 XNU,XNU 是一个宏内核 BSD 与微内核 Mach 混合内核。 在 iOS 中,用户 ...
阅读全文

图片加载原理及优化

优化
一、图片加载(解压缩)原理1、图片加载的工作流概括来说,从磁盘中加载一张图片,并将它显示到屏幕上,中间的主要工作流如下: (1) 将 UIImage 赋值给屏幕上 UIImageView; (2) Core Animation 渲染流水线被触发; (3) Core Animation 渲染 ...
阅读全文

UI 渲染原理与优化

优化 底层
一、图像渲染原理1、iOS 双缓冲机制图像的渲染离不开 CPU 和 GPU 的协作:CPU(Central Processing Unit,中央处理器) 对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics) GPU( ...
阅读全文

WKWebView 与 JavaScriptCore

底层
一、WKWebView1、WebKitWebKit 是 Safari 浏览器的内核,WebKit 由多个重要模块组成: WebKit Embedding API(WebKit 嵌入 API)WebKit 提供给浏览器 UI 调用的接口,例如 iOS 中 WebKit 框架提供的 WKWeb ...
阅读全文

NSNotification 实现原理

底层 runloop
一、NSNotification 的基本使用1、NSNotificationNSNotification 的定义如下: 1234567891011121314@interface NSNotification : NSObject <NSCopying, NSCoding>// ...
阅读全文

Autorelease 实现原理

底层 runloop
1、@autoreleasepool{}在新建 iOS 项目的时候,会自动生成 main.m 文件: 1234567891011#import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, c ...
阅读全文

引用计数实现原理

底层 isa 对象
一、iOS 引用计数概述对象的引用方式分为强引用和弱引用,对象的强引用和弱引用信息保存在 SideTables 中,SideTables 是全局的哈希数组,里面存储了有限数量的 SideTable,多个对象会共用一个 SideTable,也就是说每个 SideTable 中存储了多个对象的引 ...
阅读全文
上一页 下一页