
nature 是一款较新的编程语言,其轻量简单,易于学习。在设计理念和运行时架构上参考了 golang ,同时有着更丰富的语法特性,更适用于业务开发,并在持续探索更广泛的应用领域。
性能是衡量编程语言核心竞争力的关键指标,接下来我们将从 IO 并发、CPU 计算、C 语言 FFI 、协程性能四个维度,并以 golang 作为基准对 nature 编程语言进行性能测试。
| 配置项 | 详情 |
|---|---|
| 宿主机 | Apple Mac mini M4 ,16GB 内存 |
| 测试环境 | Linux 虚拟机( Ubuntu 6.17.8 ,aarch64 架构) |
| 编译器 / 运行时版本 | Nature:v0.7.0 ( release build 2025-12-15 ) Golang:go1.23.4 linux/arm64 Rust:cargo 1.85.0 Node.js:v20.16.0 |
所有测试均采用相同的代码逻辑实现,文中代码示例均以 nature 编程语言为例。
IO 并发是网络服务的核心能力,本测试通过 HTTP 服务端压力测试,综合考察语言的 IO 调度、CPU 利用率与 GC 稳定性。
nature 代码示例
import http fn main() { var app = http.server() app.get('/', fn( http.request_t req, ptr<http.response_t> res):void! { res.send('hello nature') }) app.listen(8888) } ab 工具测试命令
ab -n 100000 -c 1000 http://127.0.0.1:8888/ 测试结果

可以看到 nature 在 HTTP 并发性能上超越了 golang ,这对于早期版本的编程语言来说可以说是不错的成绩。
由于 nature 和 node.js 均使用 libuv 作为 IO 后端,所以 node.js 也参与到基准测试中(libuv 线程不安全,node.js 和 nature 的事件循环均在单线程中运行),但 nature 作为编译型语言其并发处理能力远胜过 node.js 。
使用经典的递归斐波那契数列计算 fib(45) 来测试语言的 CPU 计算与高频函数调用开销。
nature 代码示例
fn fib(int n):int { if (n <= 1) { return n } return fib(n - 1) + fib(n - 2) } 测试方法
time ./main 1134903170./main 2.50s user 0.01s system 101% cpu 2.473 total 测试结果:

nature 和 golang 均采用自研的编译器后端,性能上也相差无几。而耗时高于 rust 的主要原因之一是两者在函数运行前进行了额外处理。
golang 采用了抢占式调度,不需要关注 GC safepoint ,但仍需要关注协程栈是否需要扩容,也就是下面的汇编指令
# more stack f9400b90 ldr x16, [x28, #16] eb3063ff cmp sp, x16 540002a9 b.ls 7869c <main.Fib+0x5c> // b.plas nature 采用了协作式调度,所以需要处理 GC safepoint 。但 nature 采用共享栈协程,所以不需要关心栈扩容问题。
# safepoint adrp x16, 0xa9d000 add x16, x16, #0xeb0 ldr x16, [x16] cmp x16, #0x0 b.ne 0x614198 <main.fib.preempt> nature 的 safepoint 实现仍有优化空间,若后续采用 SIGSEGV 的触发模式,函数调用性能将会得到进一步提升。
nature 和 golang 采用了截然不同的调度策略和协程设计方案,这会带来哪些不同呢?不妨看看后续的测试
通过调用 1 亿次 C 标准库中的 sqrt 函数,测试与 C 语言的协作效率。
nature 代码示例
import libc fn main() { for int i = 0; i < 100000000; i+=1 { var r = libc.sqrt(4) } } 测试结果

可以看到在 C FFI 方面,nature 相较于 golang 有着非常大的优势,这是因为 golang 的 CGO 模块有着非常高的性能成本,独立栈协程和抢占式调度设计与 C 语言难以兼容,需要经过复杂的处理。
而 nature 的共享栈和协作式调度设计与 C 语言更兼容,不仅仅是 C 语言,只要符合 ABI 规范的二进制库,nature 都能直接进行调用。
在高性能计算、底层硬件操作等场景中,nature 可无缝集成 C / 汇编编写的核心模块,弥补 GC 语言在极致性能场景下的不足,兼顾开发效率与底层性能。
协程是现代并发编程的核心组件,本测试通过 “百万协程创建 + 切换 + 简单计算” 场景,评估 Nature 与 Golang 的协程调度效率、内存占用与响应速度。
nature 代码示例
import time import co var count = 0 fn sum_co() { count += 1 co.sleep(10000) // ms, Remove this line if no sleep } fn main() { var start = time.now().ms_timestamp() for int i = 0; i < 1000000; i+=1 { go sum_co() } println(time.now().ms_timestamp() - start) // create time int prev_count = 0 for prev_count != count { println(time.now().ms_timestamp() - start, count) prev_count = count co.sleep(10) } println(time.now().ms_timestamp() - 10 - start) // calc time co.sleep(3000) // ms } 测试结果

| 语言/th> | 创建耗时(ms) | 计算耗时(ms) | 无 sleep 计算耗时(ms) | 占用内存 |
|---|---|---|---|---|
| Nature | 540 | 564 | 170 | 900+M |
| Golang | 1000 | 1015 | 140 | 2500+M |
nature 的协程在综合性能上非常优秀,内存占用更是远低于 golang 。而这是建立在 nature 的协程调度器未进行优化的前提下,预计在后续的版本中 nature 的协程调度器会进一步优化,届时将会有更加亮眼的表现。
这是一次非专业的性能测试,但在粗略的测试中,nature 编程语言展现出了超越预期的能力与潜力。作为早期的编程语言,其运行时和编译器还有着非常大的优化空间,在正式版本发布时性能将进一步提升。
以现在的性能表现来看,nature 无疑是值得关注和尝试的编程语言,尤其是在云原生、网络服务、API 开发等服务端开发领域。
这是 nature 编程语言的官网 https://nature-lang.cn/ 如果你感兴趣的话也可以加入讨论组,v nature-lang
1 craftsmanship 5 小时 4 分钟前 via Android 又见大佬 |
2 zhanying 5 小时 1 分钟前 不懂就问,新的编程语言 vibe coding 效果咋样 |
3 weiwenhao OP |
4 wweir 4 小时 53 分钟前 gust go 的文件头 + rust 的语法习惯 |
5 cmos 4 小时 50 分钟前 从易用性和方便尝鲜的角度来看,我觉得可以实现一个类似 rust 的安装命令(安装在用户目录而不是系统目录),并考虑借鉴 cargo 的功能,填充 Golang 的实用性和 rust cargo 易用性之间的空白区域。 |
6 wfhtqp 4 小时 49 分钟前 golang 也有被当作对手的一天 |
7 weiwenhao OP @cmos 很有道理,后续如果实现 install.sh 的话就默认安装在用户目录。 |
9 NoobPhper 4 小时 26 分钟前 文档字体好看 是叫啥 |
11 Donahue 1 小时 9 分钟前 大佬 太强了 |
13 dog82 用 go 好几年,我依然钟爱 java |
14 linky6565 34 分钟前 早期版本就能做到性能如此优秀的确了不起 |
15 hutoer 33 分钟前 语法比垃圾 Golang 好,预祝能火起来 |
16 gggggggg 17 分钟前 为什么所有语言都想来和 golang 比一下? |
18 fregie 7 分钟前 我想问一下,这个语言,主要适用于什么场景,或者解决了什么问题呢? |
19 brucedone 3 分钟前 像 rust ,又像 go ,算是二者的中间集? |