当你写代码时,你真正在做的事

发布: (2026年4月21日 GMT+8 02:28)
5 分钟阅读
原文: Dev.to

Source: Dev.to

Computing, Stripped to Its Core

在最底层,计算是简单的:

输入 → 转换 → 输出

你使用过的每一个系统——无论是计算器、后端 API,还是分布式系统——都遵循这一模式。

机器到底是如何完成这种转换的?

Everything Is Data (Even Your Code)

在计算机内部,没有 变量函数对象——只有 二进制数据(0 和 1)

你的代码(例如 if 语句、循环、API 调用)会被编译或解释成 机器指令,这些指令仅仅是数字。

The CPU: The Real Executor

CPU 是真正 执行工作 的部件。它遵循一个简单的循环:

取指 → 解码 → 执行

1. Fetch

从内存中获取下一条指令。

2. Decode

理解这条指令的含义。

3. Execute

执行操作(数学、逻辑、内存访问)。

Example

当你写下:

const sum = a + b;

CPU 并不会看到 JavaScript。它看到的更像是:

  • a 加载到寄存器
  • b 加载到寄存器
  • 将两者相加
  • 将结果存储

这就是计算。

The GPU: Specialized Parallelism

CPU 是通用的,而 GPU 则专为运行成千上万个较小的核心而设计,这些核心能够在不同的数据点上同时执行相同的指令。

GPU 的主导领域:

  • 图形渲染
  • 机器学习
  • 仿真

CPU 只有少数几个强大的核心,适合顺序任务和复杂的逻辑与分支。
GPU 拥有成千上万个更简单的核心,适合大规模并行——一次对海量数据集执行相同的操作。

What “Transformation” Actually Means

你编写的每个程序都会转换数据。

示例

  • API → 将请求转换为响应
  • 数据库 → 将查询转换为结果
  • 前端 → 将状态转换为 UI

在所有这些之下,数据在内存中流动,被 CPU/GPU 处理,然后写回。

Memory Is the Real Battlefield

大多数性能问题并不是计算本身——而是数据移动。

  • CPU 很快。
  • 内存访问很慢。

系统效率取决于:

  • 访问内存的频率
  • 数据的组织方式
  • 移动数据的次数

From This to Scalable Systems

可扩展系统不过是大规模的数据转换流水线。

  • 后端服务 → 处理请求
  • 队列系统 → 在服务之间搬运数据
  • 数据库 → 存储和检索结构化数据

在规模化时,你不只是“处理请求”;你在管理数据如何在机器之间流动、转换和持久化。

Why This Knowledge Matters

如果不了解计算,你可能会:

  • 过度获取数据
  • 设计低效的 API
  • 忽视内存成本
  • 滥用并发
  • 仅凭猜测性能而不进行推理

有了这些理解,你可以:

  • 设计自然可扩展的系统
  • 找出瓶颈
  • 做出有意的权衡

The Shift

大多数开发者会想:“我该如何实现这个功能?”
更好的开发者会想:“数据是什么,它是如何流动的?”

这就是区别所在。

Final Thought

计算并非魔法、抽象或高层次的东西。它是 在硬件约束下对数据进行结构化转换

一旦你明白了这一点,你就会:

  • 停止盲目写代码…
  • …并开始有意识地进行系统工程。
0 浏览
Back to Blog

相关文章

阅读更多 »

数据库瓶颈

“它很快……直到用户出现。” 那是我在调试他系统时对朋友说的。问题是每个请求都依赖于 database。每…