首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
高端
订阅
倔强的小萝卜
更多收藏集
微信扫码分享
微信
新浪微博
QQ
16篇文章 · 0订阅
iOS开发同学的arm64汇编入门
在定位某些crash问题的时候,有时候遇到一些问题很诡异。有时候挂在了系统库里面。这个时候定位crash问题往往是比较头疼的。那么这个时候学会一些汇编知识,利用汇编调试技巧进行调试可能会起到意想不到的效果。 学习汇编语言不只是帮助定位crash而已,学习汇编可以帮助你真正的理解…
iOS Memory Deep Dive
仅以此文解答自己大学以来多年对内存管理的疑惑。 随着计算机的发展,我们的计算机处理的任务也变得越来越繁多,但是对于某台固定的计算机,CPU 和 Memory 都是固定的,如果有些直接使用物理内存地址的话会带来很多问题。首先编译器不能以一种抽象的角度来描绘内存,在执行的过程中如果…
[贝聊科技]一次高效的依赖注入
01. 问题场景 最简单的主项目依赖第三方 pods。 组件依赖第三方 pods,主项目再依赖组件。 这种单向的依赖关系,决定了从组件到项目的通讯是单向的,即主项目可以主动向组件发起通讯,但是组件却没有办法主动和主项目通讯。 你可能说不对,可以发通知啊?是的,是可以发通知,但是…
高性能无锁队列 Disruptor 初体验
最近一直在研究队列的一些问题,今天楼主要分享一个高性能的队列 Disruptor 。 它是英国外汇交易公司 LMAX 开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。基于 Disruptor 开发的系统单线程能支撑每秒600万订单。 目前,包括 Apache Stor…
剖析 ARM 64 架构中的 objc_msgSend
很高兴,我又回来了。在刚刚过去的 WWDC 期间,我在 CocoaConf Next Door 做个一个关于剖析 ARM64 上 objc_msgSend 运行流程的发言。现在我将整理后的内容重新发布到 Friday Q&A 上。 每个 Objective-C 对象都会指向一个…
fishhook的实现原理浅析
早些时候,iOS中一提到“黑魔法”、HOOK,很多人第一时间想到的就是 AOP RunTime MethodSwizzling 这些不明觉厉的东西,它们的基本用法其实都不难,真正难的是如何在合适的地方用好它们。 任何事物都有两面性,越强大其可能带来的隐患也越具有毁灭性。苹果提供…
iOS编译过程
iOS 开发中使用的是编译语言,所谓编译语言是在执行的时候,必须先通过编译器生成机器码,机器码可以直接在CPU上执行,所以执行效率较高。他是使用 Clang / LLVM 来编译的。LLVM是一个模块化和可重用的编译器和工具链技术的集合,Clang 是 LLVM 的子项目,是 …
深入iOS系统底层之静态库
少长咸集,群贤毕至。--《王羲之・兰亭集序》 程序员编写的是源代码,而计算机运行的则是CPU能识别的机器指令,因此必须要有一系列工具或程序来将源代码转化为机器指令,这个转化的过程需要经历编译和链接两个主要阶段。所谓编译就是将源代码文件转化为中间的目标文件(Object file…
Kotlin Coroutines 笔记 (一)
一. 协程 Kotlin 在1.1版本之后引入了协程的概念,目前它还是一个试验的API。 在操作系统中,我们知道进程和线程的概念以及区别。而协程相比于线程更加轻量级,协程又称微线程。 Kotlin 的协程是无阻塞的异步编程方式。Kotlin 允许我们使用协程来代替复杂的线程阻塞…