凹语言执行速度比 Go 快一倍,体积百分之一
凹语言还在开发状态的 v0.17.0 版本针对后端输出的 wat 文件做了体积优化。以递归版本的 Fib 为例,输出的体积是 Go 的百分之一(优化后是体积是前个版本的三分之一),执行速度快一倍。详细请参考凹语言主库下的 tests/bench/fib 目录文档。
Fib 测试代码
凹语言的优点可以通过一个简单的 Fibonacci 示例来说明。下面是凹语言和 Go 两种语言中实现的 fib 函数。
凹语言代码:
复制代码
Go 代码:
复制代码
测试结果
执行 make
输出结果如下:
复制代码
和 TinyGo 的对比
TinyGo 是 0.33.0 版本,编译时关闭了不必要的特性。
复制代码
凹语言编译速度是 TinyGo 的 10 倍,输出的 wasm 体积和 TinyGo 一样都是 8KB,凹语言输出的 wasm 执行时间比 TinyGo 稍慢。
总结
凹语言是 v0.17.0 版本, Go 是 1.21.0 版本
凹语言输出的 wasm 体积为 12KB, Go 语言输出 1.3MB 大小的 wasm, 凹语言是 Go 的 1/100 大小(优化后是体积是前个版本的三分之一)
凹语言执行时间 0.12, Go 的执行时间是 0.26, 凹语言是 Go 的 1/2 执行时间
评论