LoongRiver 最近的时间轴更新
LoongRiver

LoongRiver

V2EX 第 637436 号会员,加入于 2023-07-06 20:52:36 +08:00
LoongRiver 最近回复了
306 天前
回复了 LoongRiver 创建的主题 程序员 以练代学,用 Rust 实现 Lua 解释器
@ViVi333 我的本意是为了学习 Rust ,而拿 Lua 解释器作为一个练手的项目。

不过你不会 Rust ,这也是有好处的。就是你可以只看文章里的文字说明部分,然后用自己的理解,用 C 语言自己实现一遍。如果我本来就是用 C 语言介绍的,那你可能就偷懒了,只是自己看一遍而不去自己实现,或者自己实现的时候不独立思考而是直接照搬我的代码。

自己实现一遍的收获 是远大于 只看一遍文章的。

不过 Lua 的官方实现是 C 语言,你也可以参考。网上也有很多源码阅读的文章,也有几本相关的实体书。
319 天前
回复了 LoongRiver 创建的主题 程序员 以练代学,用 Rust 实现 Lua 解释器
@zuisong 欢迎多提意见 :)
320 天前
回复了 LoongRiver 创建的主题 程序员 以练代学,用 Rust 实现 Lua 解释器
@wxf666 虽然主要是为了学习,但是也会考虑性能方面。追求性能的话,对 Rust 学的就更深入些。

1. Lua 的官方实现本身已经在性能方面很高效了,要想全面超过基本不可能的了。能尽力做到一致就很知足了。

2. 因为个人能力不足,所以直接使用了 Rust 的 Rc 来做垃圾回收。一般认为 RC 比狭义的 GC 要慢。具体讨论可以参见文章中的 [垃圾回收和 Rc]( https://wubingzheng.github.io/build-lua-in-rust/zh/ch03-05.gc_vs_rc.html) 这节。

3. 但在某些方面,我的实现是比 Lua 的官方实现要更高效的。主要是对短字符串的处理。具体参见 [字符串定义]( https://wubingzheng.github.io/build-lua-in-rust/zh/ch03-01.string_type.html) 这节。

4. 我做了一些简单的性能测试。很多情况下比官方实现慢 1 倍,但有的情况下,比如短字符串比官方实现快一些。不过我希望能在完成大部分功能后,再去做完整的性能测试和优化。所以目前做的性能测试就没贴出来。
320 天前
回复了 LoongRiver 创建的主题 程序员 以练代学,用 Rust 实现 Lua 解释器
@llbbzh 赞同。所以我在写的时候,尽量多画图,然后是列表,再然后是文字,实在不行再贴代码。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5013 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 09:17 · PVG 17:17 · LAX 02:17 · JFK 05:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.