深入理解 Autolayout 与列表性能 -- 背锅的 Cassowary 和偷懒的 CPU 这篇文章会通过对 autolayout 内部实现的探索和数据分析和对 auto...
深入理解 Autolayout 与列表性能 -- 背锅的 Cassowary 和偷懒的 CPU 这篇文章会通过对 autolayout 内部实现的探索和数据分析和对 auto...
基于戴铭老师给出的objc_msgSend监听方案,对其中核心的汇编实现进行解析 监听代码 单个指令解析 完整armv8指令集、ARM64汇编基础(不过里面说sp是x31不置...
进程间通信通常有几种方式。 1.管道分为匿名管道、命名管道。匿名管道就是命令行中常用的 xxx | xxx。管道以文件的形式存在,但是使用方式类似于开发的瀑布模型,当下一个环...
无论是容器,还是虚拟机,都依赖于内核中的技术,虚拟机依赖的是 KVM,容器依赖的是 namespace 和 cgroup 对进程进行隔离。 为了运行 Docker,有一个 d...
概述 大机器不灵活, 因此诞生在物理机上搭建虚拟机的方法.资源大小不灵活资源申请不灵活资源共享不灵活 搭建虚拟机的问题是: 虚拟机软件必定是运行在用户态, 虚拟机中的内核无法...
设备管理 用设备控制器屏蔽设备差异I/O 设备多种多样, 通过设备控制器范文设备( 类似代理商 )控制器像小电脑, 有芯片和寄存器, CPU 可通过读写寄存器访问设备I/O ...
初探 文件系统的功能以块为单位的存储组织形式要有索引, 方便查找热点文件应该有缓存可以以文件夹形式组织, 方便管理在内存中维护数据结构, 保存哪些文件被哪些进程打开/使用 文...
内存管理 内存管理包含: 物理内存管理; 虚拟内存管理; 两者的映射 除了内存管理模块, 其他都使用虚拟地址(包括内核) 虚拟内存空间包含: 内核空间(高地址); 用户空间(...
创建进程 使用fork函数创建进程int pid = fork();在执行此函数后,即从当前进程开了一个新的子进程。pid=0表示当前是新进程,不为0代表当前为主进程,pid...
0.X86架构 1.BIOS引导 实模式只有 1MB 内存寻址空间(X86) 加电, 重置 CS 为 0xFFFF , IP 为 0x0000, 对应 BIOS 程序 0xF...
项目背景 我们希望设计开发一个小的框架,能够获取接口调用的各种统计信息,比如,响应时间的最大值(max)、最小值(min)、平均值(avg)、百分位值(percentile)...
需求分析 技术人也要有一些产品思维。对于产品设计、需求分析,我们要学会“借鉴”,一定不要自己闷头想。一方面这样做很难想全面,另一方面从零开始设计也比较浪费时间。除此之外,我们...
SOLID 分别为: 单一职责原则 开闭原则 里氏替换原则 接口隔离原则 依赖倒置原则 单一职责原则 1. 如何理解单一职责原则(SRP)? 一个类只负责完成一个职责或者功能...
Demo地址 面向对象综述 设计分为三大步 面向对象分析OOA 面向对象设计OOD 面向对象开发OOP 划分职责进而识别出有哪些类根据需求描述,我们把其中涉及的功能点,一个一...
面向对象特性 封装 What:隐藏信息,保护数据访问。How:暴露有限接口和属性,需要编程语言提供访问控制的语法。Why:提高代码可维护性;降低接口复杂度,提高类的易用性。 ...
我们先来谈下幂等的概念 抽象概念 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中,一个幂等操作的特点是其任意多次执...
引言 面向对象是一个老生常谈的话题,其基本思想为封装、继承、多态。 最近在学习 Linux 系统源码时,发现虽然系统是使用面向过程的 C 语言编写,但是还是可以体现出面向对象...
简述 平时工作中使用 CoreVideo 也不算少,但是一直没有系统完整地阅读梳理过它的官方文档。趁着这段时间较为闲暇,就系统性的学习一下官方文档,并且记录一些常见用法。 常...
去年总结 工作 去年由刚加入公司的萌新,到负责语聊房SDK、客户对接等事务、方案设计等,在这个过程中自身的综合能力还是有比较大的提升的。首先是负责语聊房的SDK,在这期间大致...
设计模式 创建型模式 初始化逻辑分离。 抽象工厂 抽象工厂旨在提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。如一个窗口有多种UI风格,其中包含了多种UI...