iOS 性能监控(1)——CPU、Memory、FPS
前段时间,在公司的 App 中集成了一个性能监视器,效果如下所示。在这个过程中,扒了一些性能监测开源框架的源码,并学习了其中的原理。本文就对此做一些简要的总结。
前段时间,在公司的 App 中集成了一个性能监视器,效果如下所示。在这个过程中,扒了一些性能监测开源框架的源码,并学习了其中的原理。本文就对此做一些简要的总结。
IP(Internet Protocol)旨在让最终目标主机收到数据包,但是这一过程中仅仅有 IP 是无法实现通信的,还必须具有解析主机名、MAC 地址以及数据包在发送过程中异常情况处理等功能。
在计算机通信诞生之初,标准化和系统化并未得到足够的重视,各大厂商竞相研发各自的通信技术。随着异构机型之间通信的需求不断增加,通信技术的标准化也随之展开。于是,ISO(International Organization for Standard)制定了一个国际标准 OSI(Open System Interconnection),即广为人知的 OSI 参考模型,作为标准化通信技术的设计准则。
Objective-C 本质上是一种基于 C 语言的领域特定语言。Objective-C 通过一个用 C 语言和汇编实现的 runtime,在 C 语言的基础上实现了面向对象的功能。在 runtime 中,对象用结构体表示,方法用函数表示。
通常,一个线程一次只能执行一个任务,任务完成后线程就会退出。但是在很多系统或框架中,需要实现一种这样机制:线程能够随时处理事件或消息,并且不会在执行完成后退出。这种机制称为 Event Loop,其一般逻辑吐下所示:
最近在 iOS 开发中做了较多动画相关的编程工作。因此想借此机会深入了解了一下 iOS 动画及渲染相关原理。随着对相关方面的深入了解,发现这里面涉及到从硬件底层到软件框架等一系列相关知识。
现代软件系统中,除了进程,线程也是一个非常重要的概念。随着CPU频率增长开始出现停滞,处理器逐渐开始想多核方向发展。多线程,作为实现软件并发执行的重要方法之一,也开始被重视。
当我们在 Linux 的 bash 中输入命令执行某个 ELF 可执行文件时,如下所示。
最近在看《程序员的自我修养——链接、装载与库》一书,这本书以前看过一部分,由于难啃,当时没有坚持下去。现在工作了,每天接触的都是业务开发,对底层的一些东西感觉越来越陌生。于是,又把此书翻了出来拜读。为了加深阅读的印象,打算对书中的一些有价值的内容进行整理,也方便后续回顾。
今天看了公司内部某三个APP项目的存储相关代码。总体来说,存储架构基本上是类似的。对此,我绘制了其存储架构的示意图,如下图所示。
在iOS开发中苹果定义了一套MVC的软件架构。前几天,同事们聊起了MVC、MVP、MVVM等架构的区别。今天,我也来对此给出一些自己的理解。