动态链接库如何函数寻址

2022-09-06
阅读 2 分钟
2.5k
最近我们发现 go 编译为 so 之后,内存占用涨了好多,初步分析下来,是动态符号导致的,感觉不太符合常识趁着娃还在外面放假,正好学习学习~

LuaJIT 是如何工作的 - 解释模式

2021-06-13
阅读 2 分钟
9.3k
今天我们介绍 Lua 语言的另外一个虚拟机实现 LuaJIT,LuaJIT 使用的 lua 5.1 的语言标准(也可以兼容 lua 5.2)。意味着同样一份遵守 lua 5.1 标准的代码,既可以用标准 lua 虚拟机来跑,也可以用 LuaJIT 来跑。

Lua 代码是如何跑起来的

2021-05-03
阅读 3 分钟
5.4k
C 语言虽然也是高级语言,但是毕竟是很 “古老” 的语言了(快 50 岁了)。相比较而言,C 语言的抽象层次并不算高,从 C 语言的表达能力里,还是可以体会到硬件的影子。

C 代码是如何跑起来的

2021-04-24
阅读 5 分钟
13k
上一篇「CPU 提供了什么」中,我们了解了物理的层面的 CPU,为我们提供了什么。本篇,我们介绍下高级语言「C 语言」是如何在物理 CPU 上面跑起来的。C 语言提供了什么C 语言作为高级语言,为程序员提供了更友好的表达方式。在我看来,主要是提供了以下抽象能力:变量,以及延伸出来的复杂结构体我们可以基于变量来描述复...

实操体验 CPU 的流水线/多发射

2021-04-05
阅读 4 分钟
6.4k
前言前文 <一行机器指令感受下内存操作到底有多慢> 中,我们体验到了 CPU 流水线阻塞带来的数量级性能差异。当时只是根据机器码,分析推断出来的,这次我们做一些更小的实验来分析验证。动手之前,我们先了解一些背景。在 \<CPU 提供了什么> 一文中介绍过,CPU 对外提供了运行机器指令的能力。那 CPU 又是如...