首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS性能
订阅
疯猫江小帆
更多收藏集
微信扫码分享
微信
新浪微博
QQ
15篇文章 · 0订阅
如何保证iOS的多线程安全
什么会给多线程的安全造成隐患? 有了多线程技术支持,我们可以并发的进行多个任务,因此同一块资源就有可能在多个线程中同时被访问(读/写)。这个现象叫作资源共享,比如多个线程同时访问了同一个对象,同一个变
iOS 从源码解析Run Loop (十):Run Loop 与GCD、FPS、CADisplayLink
在 Run Loop 和 GCD 的底层双方各自都会相互用到对方。首先我们先看一下读 run loop 源码的过程中用到 GCD 的地方,前面我们学习 GCD 的时候已知使用 dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, …
iOS FPS监测
现在如果在网络上搜的话,基本上大多数用于检测FPS的控件都是通过CADisplayLink来实现的。 即与屏幕刷新率同步的时间对象。 一般情况下,我们的屏幕刷新率是1/60s一次。CADisplayLink实际上跟平常用的NSTimer的用法基本相似,NSTimer的时间间隔是…
iOS 启动优化(上)
当我们的APP随着业务的增加、复杂,代码量也随之暴增,慢慢的打开我们的App时感觉非常卡,启动比较缓慢,非常影响用户的体验,那么如何才能使我们的App启动比较流畅,给用户很好的体验,这篇文章将给大家带
探究Time Profiler in Instruments 原理,并调研如何实现方法级耗时检查工具
Time Profiler是Xcode工具套件里自带的工具,我们可以通过它来很方便地监测方法的耗时,进而优化我们的App。 图上按照时间顺序从左到右,五条竖虚线分别代表了每隔一段时间(默认是1ms),TimeProfiler从应用中获得调用栈。先分析前两个虚线: 从这个过程中我…
iOS 性能监控(三)—— 方法耗时监控
本篇将介绍iOS性能监控工具(QiLagMonitor)中与 “方法耗时监控” 相关的功能模块。 定义:hook是指在原有方法开始执行时,换成你指定的方法。或在原有方法的执行前后,添加执行你指定的方法。从而达到改变指定方法的目的。 使用runtime 的 Method Swiz…
深入浅出 RunLoop(五):RunLoop 与 NSTimer
如果我们在子线程上使用NSTimer,就必须开启子线程的RunLoop,否则定时器无法生效。 问题:由前面的文章我们知道,RunLoop同一时间只能运行在一种模式下,当我们滑动tableview/scrollview的时候RunLoop会切换到UITrackingRunLoop…
iOS - 聊聊 autorelease 和 @autoreleasepool
作为 iOS 开发者,在面试过程中经常会碰到这样一个问题:在 ARC 环境下autorelease对象在什么时候释放?如果你还不知道怎么回答,或者你只有比较模糊的概念,那么你绝对不能错过本文。 本文将通过Runtime objc4-756.2版本源码、macOS 与 iOS 工…
iOS 底层探究:iOS中的渲染流程解析
这是我参与8月更文挑战的第31天,活动详情查看:8月更文挑战 1. iOS中的渲染 在iOS中渲染的整体流程如下所示 App通过调用CoreGraphics、CoreAnimation、CoreIma
iOS 性能优化(自动释放池 & autorelease)
前言autoreleaseprepareOptimizedReturnrootAutorelease2自动释放池(Autoreleasepool)autoreleaseFasthotPagefulla