首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
呦呦君
掘友等级
iOS开发
|
字节跳动
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
117
文章 117
沸点 0
赞
117
返回
|
搜索文章
最新
热门
iOS APP虚拟内存用量初探
业务上出现过因为虚拟内存耗尽导致的crash,后续也通过设置为APP扩展虚拟内存的可用范围,本文主要基于以上背景对虚拟内存进行一些调研
BSBackTracelogger学习笔记
对于一个app来说,检测主线程的卡顿是性能优化的一个重点,而其中一个重要的操作就是当在子线程监控到主线程卡顿时需要抓取主线程的堆栈来进行后续的操作,一般来说都是使用BSBacktraceLogger工具在子线程抓取主线程的堆栈。今天主要来探索一下BSBacktraceLogge…
iOS-weak的底层实现
weak的主要作用就是用于内存管理,一个weak类型指针wptr指向的object被释放之后,系统会自动将wptr置为nil,防止其他代码访问到wptr造成野指针异常。今天主要就跟随源码来探索一下系统是如何实现这种机制的。 接下来我们跟随libobjc的源码来探索weak的内部…
iOS-自动释放池AutoreleasePool
首先来看如下代码,思考一下输出以及原因。 对比上述代码可以发现除了获取DemoObject实例的方法不一样其他的一模模一样样,问题应该就在这里了。其实对于第二种方式系统也已经给出了提示: 原因就是我们今天需要分析的这个AutoreleasePool自动释放池了。 在引用计数(相…
iOS多线程锁之@synchronized原理分析
在iOS多线程开发当中,不可避免会遇到数据同步的问题,其中一种解决方案就是通过加锁来防止两条线程同时操作同一片内存空间。今天我们主要来探索一下一种比较常见的锁@synchronized同步锁。 首先我们来看一段简单的代码,可以通过xcode转换为汇编代码来看一下@synchro…
leetCode-5 最长回文子串
首先确认一下什么是回文串,aba属于回文串,aa也属于回文串。也就是说回文串分为两种情况,长度为奇数是是以最中间的单个字符开始往两边扩散。长度为偶数时需要以最中间的两个字符开始扩散。因此需要考虑两种扩散方式。 数组dp[i][j]表示字符串s中[i,j]区间的子串是否为回文串。…
leetCode-239 滑动窗口最大值
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 如果max不在窗口的开始位置,说明当前的max还是新的窗口中的最大值,继续遍历。 维持一个递减的…
fishHook源码分析
fishhook是facebook提供的一个在运行时动态修改外部c函数的的一个三方库,只有短短的200多行代码。使用的代码实例如下: 如上图所示,Mach-O文件主要包含了Header、LoadCommands以及Segment几个主要的部分。 1. struct rebind…
ios底层-类的加载下 类和分类在不同场景下的加载
在类的加载上中罗列了一些和类加载相关的方法以便于这一次的展开分析。主要相关方法如下: 开辟class_rwe_ex_t,复制ro中的方法、协议以及属性等数据到rwe中。 将方法/协议/属性列表作为单个元素加入到二维数组lists中,具体操作为开辟新的内存空间,采用头插法,确保新…
ios底层-类的加载上 核心方法分析
我们通常的开发过程,对于类的使用可以说是信手拈来,初始化、调用方法等等。那么类是什么时候进行加载的呢?在app启动之后,如果实现了+load方法,会先执行load方法,那么load方法又是何时执行的呢?通过研究类的加载,可以得到问题的答案。 在dyld启动流程一文中,有提到过l…
下一页
个人成就
文章被点赞
114
文章被阅读
54,865
掘力值
1,461
关注了
47
关注者
86
收藏集
1
关注标签
29
加入于
2019-05-21