首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS 老八股
订阅
咸鱼老张
更多收藏集
微信扫码分享
微信
新浪微博
QQ
22篇文章 · 0订阅
十大经典排序算法总结(JavaScript描述)
读者自行尝试可以想看源码戳这,博主在github建了个库,欢迎star.读者可以Clone下来本地尝试。此博文配合源码体验更棒哦~~~ 输出:n个数的排列:a1',a2',a3',...,an',使得a1'<=a2'<=a3'<=...<=an'。 再讲的形象点就是排排坐,调座…
iOS App启动优化(六):实用党直接看这里
添加到启动最早的那个 ViewController 即可。
iOS App启动优化(五):收集符号 && 生成 Order File
启动的相关方法可能在不同的线程执行,如果我们用一个数组直接收集这些符号,会出现线程问题。 听到多线程问题立马想到锁,但是这里因为锁耗费性能比较多所以不推荐使用。建议使用原子队列解决这个问题。 原子队列是栈结构,通过 队列结构 + 原子性 保证顺序。 启动的时候方法执行,__sa…
iOS App启动优化(四):编译期插桩 && 获取方法符号
编译器插桩就是在代码编译期间修改已有的代码或生成新代码。 编译期时,在每一个函数内部二进制源数据添加 hook 代码来实现全局 hook 效果。 说白了我们要跟踪到 每个方法的执行,从而获取到启动时 方法执行的顺序,然后再按照这个顺序去编写order file。 文档是个好东西…
iOS App启动优化(三):二进制重排
我们可以看到图中项目的Page Fault 数量并不多,这是因为当前项目是一个demo,代码和文件都极少。当代码多起来的话,Page Fault的 数量和加载耗时都会随着代码增加而增加。 二进制重排 可以很好优化这个问题,其中心思想是重新排列 方法符号的顺序, 使启动的相关方法…
iOS App启动优化(一):检测启动时间
冷启动:指APP被后台kill后重新启动APP,这种启动方式叫做冷启动。 热启动:APP的状态由running切换为suspend,APP 没有被kill仍然在后台运行。再次把APP切换到前台,这种启动方式叫热启动。 Xcode 中提供了测量 pre-main 的时间 Edit…
03-iOS底层原理|iOS OffScreen Rendering 离屏渲染原理
我们作为一个程序员,在提升技术能力水平的时候为了拓宽自己的知识面,对相同课题的做一个相对系统的认识,我们将采用环式学习法,去探索在iOS领域相关的几个课题的第一个:iOS离屏渲染原理
iOS底层原理总结 - 探寻OC对象的本质
对小码哥底层班视频学习的总结与记录。面试题部分,通过对面试题的分析探索问题的本质内容。 探寻OC对象的本质,我们平时编写的Objective-C代码,底层实现其实都是C\C++代码。 OC的对象结构都是通过基础C\C++的结构体实现的。 我们通过命令行将OC的mian.m文件转…
iOS底层原理总结 - 探寻KVO本质
对小码哥底层班视频学习的总结与记录。面试题部分,通过对面试题的分析探索问题的本质内容。 首先需要了解KVO基本使用,KVO的全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。 上述代码中可以看出,在添加监听之后,age属性的值在发…
iOS底层原理总结 - RunLoop
一. RunLoop简介 运行循环,在程序运行过程中循环做一些事情,如果没有Runloop程序执行完毕就会立即退出,如果有Runloop程序会一直运行,并且时时刻刻在等待用户的输入操作。RunLoop可以在需要的时候自己跑起来运行,在没有操作的时候就停下来休息。充分节省CPU资…