Pet*_*uer 8 performance moarvm raku
raku -version 这是基于实施 Perl 6.d 的 MoarVM 2020.01.1 版构建的 Rakudo 2020.01 版。
目前看起来我无法启动任何运行时间低于 130 毫秒(主要是启动时间)的 Raku Perl6 程序。
- Raku 总是在程序启动时重新解析完整的源代码吗?
- Raku 缓存任何字节码吗?
- 所以即使是在线运行也总是需要 >= 130 毫秒?
time raku --stagestats hello_world.pl
Stage start : 0.000
Stage parse : 0.133
Stage syntaxcheck: 0.000
Stage ast : 0.000
Stage optimize : 0.002
Stage mast : 0.006
Stage mbc : 0.001
Stage moar : 0.000
hello world
hello world
TEST
hello world
real 0m0,183s
user 0m0,231s
sys 0m0,016s
Run Code Online (Sandbox Code Playgroud)
Raku 总是在程序启动时重新解析完整的源代码吗?
如果你的意思是你的脚本?是的。当前仅预编译模块。
如果你的意思是整个乐的设置?不,那么你会看到比这多 100 倍的东西。
Raku 缓存任何字节码吗?
安装的模块和通过访问的模块-Ilib
缓存在.precomp
目录中。
因此,即使是在线用户也总是需要 >= 130 毫秒?
在我的机器上它大约是 120 毫秒。但是,是的,在那个球场上。此时此刻。部分原因是在启动时进行了许多初始化:虽然已经采取了很多措施来确保在启动时没有进行不必要的初始化,但这并没有像 Perl 那样经过多年的审查。
如果您将其与例如 Perl 进行比较,您应该意识到 Raku 为您提供了内置的 Moose。如果您perl -MMoose -e ''
在我的机器上运行,启动时间仅比 Raku 低几毫秒。