V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  LoongRiver  ›  全部回复第 1 页 / 共 1 页
回复总数  4
2023-07-27 22:42:54 +08:00
回复了 LoongRiver 创建的主题 程序员 以练代学,用 Rust 实现 Lua 解释器
@ViVi333 我的本意是为了学习 Rust ,而拿 Lua 解释器作为一个练手的项目。

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

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

不过 Lua 的官方实现是 C 语言,你也可以参考。网上也有很多源码阅读的文章,也有几本相关的实体书。
2023-07-14 17:49:20 +08:00
回复了 LoongRiver 创建的主题 程序员 以练代学,用 Rust 实现 Lua 解释器
@zuisong 欢迎多提意见 :)
2023-07-14 12:17:30 +08:00
回复了 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 倍,但有的情况下,比如短字符串比官方实现快一些。不过我希望能在完成大部分功能后,再去做完整的性能测试和优化。所以目前做的性能测试就没贴出来。
2023-07-14 09:03:13 +08:00
回复了 LoongRiver 创建的主题 程序员 以练代学,用 Rust 实现 Lua 解释器
@llbbzh 赞同。所以我在写的时候,尽量多画图,然后是列表,再然后是文字,实在不行再贴代码。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1090 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 22:36 · PVG 06:36 · LAX 14:36 · JFK 17:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.