加载中
不吹不擂,一文揭秘鸿蒙操作系统

作者:michalliu,腾讯 WXG 客户端开发工程师 华为鸿蒙OS有什么创新,是否自主研发完全开源,本文带你深入鸿蒙的世界。 一、初识鸿蒙 国内在计算机基础核心领域缺乏建树,一直没有自主知识产...

一文掌握 Linux 内存管理

作者:dengxuanshi,腾讯 IEG 后台开发工程师 以下源代码来自 linux-5.10.3 内核代码,主要以 x86-32 为例。 Linux 内存管理是一个很复杂的“工程”,它不仅仅是对物理内存的管理,也涉及到虚...

2021/05/31 08:30
0
iOS 的系统类信息在栈上?

前言 今天有位群友抛出了一个很有意思的问题:为什么系统类的 class 地址比栈区变量更高? image-20210519235852843 iOS 进程内存布局 通常情况下,我们对进程内存的布局的印象是下面这种: ...

2021/05/20 00:00
30
iOS 极致速度优化:快速打开任意 APP 的设置界面

本文会提供一种打开任意 APP 权限设置页面(比如微信的设置页面)的方案,同时,该方案能够提高打开任意设置界面的速度。 打开 APP 设置入口的流程分析 进入当前 APP 的设置页面 的方案很简单,...

ios
2021/05/17 22:01
25
从 Objective-C 和 Swift 看字典的性能优化(2)

本文涉及的汇编比较多,手机阅读不便。建议读者通过公众号回复”学习笔记“获取原始的 markdown 版本 有任何想吐槽或者加交流群的朋友,可以直接留言 NSMutableDictionary 的创建流程 本小节...

从 Objective-C 和 Swift 看字典的性能优化(2)

本文涉及的汇编比较多,手机阅读不变。建议读者通过公众号回复”学习笔记“获取原始的 markdown 版本 有任何想吐槽或者加交流群的朋友,可以直接留言 NSMutableDictionary 的创建流程 本小节...

iOS 中各种奇怪的崩溃

本文会分享一些「奇怪」的崩溃堆栈,每个崩溃对应的「类型」和「堆栈」都「存在差异」。感兴趣的读者可以分享一下自己的解决方案。 注意,本文所有崩溃的原因都是同一个 EXC_BAD_ACCESS (co...

ios
2021/04/23 23:59
16
x86_64 的 CALL 指令长度会发生变化吗?

最近和群友讨论指令集时,遇到一个有意思的问题,x86_64 的 CALL 指令长度会发生变化吗? 今天我们通过一个简单的例子验证一下长度会发生变化 call 指令简介 CALL[1] 指令调用一个过程,指挥...

2021/04/19 08:33
55
将判断 NSArray 数组是否包含指定元素的时间复杂度从 O(n) 降为 O(1)

前言 NSArray 获取指定 元素 的位置 或者 判断是否存在指定的 元素 的时间复杂度是 O(n)(包含特定元素时,平均耗时是 O(n/2),如果不包含特定元素,耗时是 O(n))。 当我们需要频繁进行该操作...

php
2021/04/12 00:00
55
clang 源码导读(8):词法分析和预处理指令

Lex clangLex 负责词法分析和预处理,处理宏、令牌和 pragma 构造 本文会通过实际的例子对 clangLex 的 词法分析 和 预处理指令 相关流程进行分享 下面是本文涉及到一些重要类型(有删减): ...

2021/04/07 08:25
66
clang 源码导读(7):编译器前端流程简介

前言 clang 编译器前端负责从源码生成中间码,它通常由 clang 模块驱动,并通常包含以下几个步骤: image 本文会先对 clang 编译器前端的流程进行简单的介绍,并会在后面的系列文章依次分享下...

2021/04/07 08:25
92
The Architecture of Open Source Applications

分享几篇开源软件设计架构的好文,分别是编译工具 ninja[1] 和 cmake[2],编译器 llvm[3] [1] ninja: https://aosabook.org/en/posa/ninja.html[2] cmake: https://aosabook.org/en/cmake.h...

2021/04/06 23:53
22
关于《程序员的修养》交流群设置加入门槛的说明

《程序员的修养》交流群的目的是什么? 通过群友 互相帮助 让每个程序员都能够做到 提高修养 如何实现? 通过设置门槛,将具备知识输出和愿意分享知识的群友聚集到一起,实现知识共享 门槛是...

2021/04/01 23:42
28
从 Objective-C 和 Swift 看字典的性能优化(1)

最近有些群友反馈自己经常遇到一些与 NSDictionary 底层相关的面试题。 本系列文章会通过分析系统库汇编的方式对此类问题进行答疑解惑。😁 一、·NSDictionary· 结构简介 1、类簇 在 iOS ...

通过 ipc 通信机制监控 iOS 的启动耗时

前言 APP 的启动耗时直接关系到用户对 APP 的印象,如果启动耗时过长会直接导致用户切换到竞品 APP,所以,对 APP 启动耗时进行监控和优化非常重要。 抖音的技术团队曾经分享过一个通过 appl...

2021/03/25 22:08
109
从一道面试题分析 GCD 的常见使用误区

前言 有网友在交流群反馈自己遇到一个“奇怪”的面试题:“GCD 最多开多少线程?” 本文,会通过实际的 Demo 测试不同场景下的情况 测试环境 iOS 14.3 测试代码 全局队列 - CPU 繁忙 第一个测...

2021/03/21 18:48
82
clang 源码导读(5): clang driver 构建 Jobs

前言 本篇文章会对 clang driver 的 构建 Jobs 流程进行详细的讲解 为什么需要 构建 Jobs 流程? 上篇文章曾经提到过,每个 JobAction 都可以通过单独的程序完成。 但是,这种方案会浪费很多...

2021/03/18 23:19
21
clang 源码导读(6): clang driver 执行命令

前言 本篇文章会对 clang driver 执行命令 的流程进行讲解 执行命令 执行命令 会将 构建 Jobs 流程组建的 jobs 依次执行 正式分享前,我们先按照惯例分享本文涉及的 流程图,方便对 执行命令...

2021/03/18 23:19
56
定量分析 static 字符串对二进制体积的影响

前言 今天交流群有网友遇到 linkmap 文件无法准确分析 static 字符串对二进制的体积的问题。 本文会通过具体的例子对 static 字符串的体积进行定量分析 测试步骤 第一步:准备测试代码 stat...

2021/03/17 23:27
80
从底层分析一下存在跨进程通信问题的 NSUserDefaults 还能用吗?

前言 字节团队最近分享的 iOS 稳定性问题治理:卡死崩溃监控原理及最佳实践 提到:NSUserDefaults 底层实现中存在直接或者间接的跨进程通信,在主线程同步调用容易发生卡死。 随之而来的问题...

ios
2021/03/12 23:58
20

没有更多内容

加载失败,请刷新页面

返回顶部
顶部