C++ 中struct/class的内存布局

struct 的内存布局: struct 的内存对齐和填充概念学过C 的都应该知道一点。其实只要记住一个概念和三个原则就可以了: 一个概念: 自然对齐:如果一个变量的内存地址正好位于它长度的整数倍,就被称做自然对齐。 如果不自然对齐,会带来CPU存取数据时的性能损失。(PS:具体应该与CPU通过总线读写内存数据的细节相关,具体没有细究) 三个原则: struct 的起始地址需要能...

TDBR & Xcode Profile

为了体现显式的、高性能的、贴近硬件的设计哲学,现代图形 API 都提供了相对传统 API 更加强大的内存管理接口。传统 API 的内存管理基本是通过 Runtime/Driver 代为托管,开发者一般不需要过多关心内存分配实现和细节。现代 API 提供了明确的内存控制接口,因此 Runtime/Driver 几乎不再帮助开发者管理内存,需要开发者显式控制内存分配。显式内存管理的好处在于...

深入理解 Lua 虚拟机(转载)

本文从一个简单示例入手,详细讲解 Lua 字节码文件的存储结构及各字段含义,进而引出 Lua 虚拟机指令集和运行时的核心数据结构 Lua State,最后解释 Lua 虚拟机的 47 条指令如何在 Lua State 上运作的。 为了达到较高的执行效率,lua 代码并不是直接被 Lua 解释器解释执行,而是会先编译为字节码,然后再交给 lua 虚拟机去执行。lua 代码称为 chu...