首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
启动优化
订阅
Boyang_
更多收藏集
微信扫码分享
微信
新浪微博
QQ
28篇文章 · 0订阅
图解 Mach-O 中的 got
iOS 开发中,动态库是个绕不开的话题,系统库基本上是动态库。它的一大优势是节约内存,可让多个程序映射同一份的动态库,实现代码共享。动态库本身也是一个 Mach-O 文件,也有数据段、代码段等。其中代码段可读可执行,数据段可读可写。 动态库共享的只是代码段部分,为了达到代码段共…
iOS Lazy Bind 你真的弄懂了吗?
之前看了很多的关于延迟绑定的文章,对stub、stub_helper、la_symbol_ptr这些概念有了一定的认识,知道对于外部定义的函数调用,首次调用需要在运行时期间借助stub_helper来动态寻找到函数调用的地址,然后存储到la_symbol_ptr段的数据段中。第…
深入理解 iOS Rendering Process
iOS 最早名为 iPhone OS,是 Apple 公司专门为其硬件设备开发的操作系统,最初于 2007 年随第一代 iPhone 推出,后扩展为支持 Apple 公司旗下的其他硬件设备,如 iPod、iPad 等。 作为一名 iOS Developer,相信大多数人都有写出…
iOS 优化篇 - 启动优化之Clang插桩实现二进制重排
( 本篇文章由于会从原理角度讲解 , 有些已经比较熟悉的同学可能会觉得节奏偏啰嗦 , 为了照顾大部分同学 , 大家自行根据目录跳过即可 . ) 了解二进制重排之前 , 我们需要了解一些前导知识 , 以及二进制重排是为了解决什么问题 . 在本篇文章里 , 笔者就不通过教科书或者大…
iOS拾遗—— Assets Catalogs 与 I/O 优化
早在 XCode 5,苹果引入了 Assets Catalogs ,它作为一个重要的开发组件,能够让开发者可以更方便的管理项目内的图片资源。 那么相比直接存储在根目录下,究竟 Assets Catalogs 有什么自己独特的优势呢?在 WWDC 2016 上提到的 I/O 优化…
iOS App冷启动优化
从用户点击App图标开始到appDelegate didFinishLaunching方法执行完成为止。 T2:main()函数之后,即从main()开始,到appDelegate的didFinishLaunchingWithOptions方法执行完毕前这段时间,主要是构建第一…
支付宝客户端架构解析:iOS 客户端启动性能优化初探
《支付宝客户端架构解析》系列将从支付宝客户端的架构设计方案入手,细分拆解客户端在“容器化框架设计”、“网络优化”、“性能启动优化”、“自动化日志收集”、“RPC 组件设计”、“移动应用监控、诊断、定位”等具体实现,带领大家进一步了解支付宝在客户端架构上的迭代与优化历程。 启动应…
iOS 编译知识小结
拖更很久了,今天水文一篇。简单介绍下iOS底层编译的相关知识,帮助我们充分理解了iOS编译的过程,相信会对我们后续的开发有一定帮助。 编译器是将编程语言转换为目标语言的程序,大多数编译器由两部分组成:前端和后端。 后端以中间代码作为输入,进行行架构无关的代码优化,接着针对不同架…
懒人版二进制重排
0. 序言 第一篇讲了动态库转静态库和二进制重排带来的启动优化以及其原理。 第二篇讲了动态库转静态库到底带来了哪些改变,以及实践中遇到的问题应该如何解决。 本篇将介绍懒人版的Clang插桩导出主工程和三方库启动相关的符号表,原理可以参考《我是如何让微博绿洲的启动速度提升30%的…
按下 ⌘ + R 后发生的事情
作为一名 coder,每天的工作不是解 bug,就是写 bug。有些东西,了解了并不一定有利于写 bug,但是有利于解 bug。 对于一个工程,当你按下 ⌘ + R 到主界面显示出来,你可曾想过这一过程发生了哪些事情?这些原理性的东西,对我们 coding 并没有直接帮助,了解…