raku -version这是Rakudo版本2020.01,构建在实现Perl6.d的MoarVM版本2020.01.1上。
目前看起来我不能启动任何运行时间低于130ms的Raku Perl6程序(主要是启动时间)。
-Is Raku总是在程序启动时重新解析完整的源代码吗?
-Is Raku缓存任何字节码?
运行一个在线程序的-So总是花费>= 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发布于 2020-02-03 17:40:27
总是在程序启动时重新解析完整的源代码吗?
如果你指的是你的脚本?是。目前只有模块是预编译的。
如果你是指整个Raku设置?不,那么你会看到100倍以上的数据。
是否缓存了任何字节码?
已安装的模块和通过-Ilib访问的模块缓存在.precomp目录中。
所以即使运行一个在线程序也要花费>= 130毫秒?
在我的机器上大约是120毫秒。不过,是的,就在这个范围内。在这个时间点上。这在一定程度上是由在启动时执行的许多初始化引起的:尽管已经采取了很多措施来确保在启动时不进行不必要的初始化,但这并没有像Perl那样经过多年的仔细检查。
如果您将其与Perl进行比较,您应该意识到Raku为您提供了内置的Moose。如果你在我的机器上运行perl -MMoose -e '',启动时间只比Raku低几毫秒。
https://stackoverflow.com/questions/60036312
复制相似问题