Fork me on GitHub

楚权的世界

Seek the wonder of life.

前段时间,在公司的 App 中集成了一个性能监视器,效果如下所示。在这个过程中,扒了一些性能监测开源框架的源码,并学习了其中的原理。本文就对此做一些简要的总结。

阅读全文 »

IP(Internet Protocol)旨在让最终目标主机收到数据包,但是这一过程中仅仅有 IP 是无法实现通信的,还必须具有解析主机名、MAC 地址以及数据包在发送过程中异常情况处理等功能。

阅读全文 »

OSI 参考模型

在计算机通信诞生之初,标准化和系统化并未得到足够的重视,各大厂商竞相研发各自的通信技术。随着异构机型之间通信的需求不断增加,通信技术的标准化也随之展开。于是,ISO(International Organization for Standard)制定了一个国际标准 OSI(Open System Interconnection),即广为人知的 OSI 参考模型,作为标准化通信技术的设计准则。

阅读全文 »

KVO(Key-Value Observing)是 iOS 开发中常用的一种用于监听某个对象属性值变化的技术。下文将以一段示例代码来分析 KVO 的底层原理。源码地址

阅读全文 »

GCD 简介

GCD(Grand Central Dispatch)是 Apple 开发的一个多核编程的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。

阅读全文 »

概述

Objective-C 本质上是一种基于 C 语言的领域特定语言。Objective-C 通过一个用 C 语言和汇编实现的 runtime,在 C 语言的基础上实现了面向对象的功能。在 runtime 中,对象用结构体表示,方法用函数表示。

阅读全文 »

Event Loop

通常,一个线程一次只能执行一个任务,任务完成后线程就会退出。但是在很多系统或框架中,需要实现一种这样机制:线程能够随时处理事件或消息,并且不会在执行完成后退出。这种机制称为 Event Loop,其一般逻辑吐下所示:

阅读全文 »

现代软件系统中,除了进程,线程也是一个非常重要的概念。随着CPU频率增长开始出现停滞,处理器逐渐开始想多核方向发展。多线程,作为实现软件并发执行的重要方法之一,也开始被重视。

阅读全文 »

前文结尾说到编译器编译源代码后生成的文件叫做目标文件,而目标文件经过编译器链接之后得到的就是可执行文件。那么目标文件到底是什么?它和可执行文件又有什么区别?链接到底又做了什么呢?接下来,我们将探索一下目标文件的本质。

阅读全文 »

最近在看《程序员的自我修养——链接、装载与库》一书,这本书以前看过一部分,由于难啃,当时没有坚持下去。现在工作了,每天接触的都是业务开发,对底层的一些东西感觉越来越陌生。于是,又把此书翻了出来拜读。为了加深阅读的印象,打算对书中的一些有价值的内容进行整理,也方便后续回顾。

阅读全文 »

在iOS开发中苹果定义了一套MVC的软件架构。前几天,同事们聊起了MVC、MVP、MVVM等架构的区别。今天,我也来对此给出一些自己的理解。

阅读全文 »
0%