Раку всегда разбирает?
Raku -version Это Rakudo версии 2020.01, построенный на MoarVM версии 2020.01.1, реализующий Perl 6.d.
В настоящее время похоже, что я не могу запустить любую программу Raku Perl6 со временем выполнения менее 130 мс (в основном время запуска).
-Раку всегда выполняет повторный анализ исходного кода при запуске программы?
-Кеширует ли 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
1 ответ
Всегда ли Raku выполняет повторный анализ исходного кода при запуске программы?
Если ты про свой сценарий? Да. В настоящее время предварительно скомпилированы только модули.
Если вы имеете в виду весь сеттинг Раку? Нет, тогда вы бы посмотрели в 100 раз больше.
Кеширует ли Raku какой-либо байт-код?
Установленные модули и модули доступны через -Ilib
кешируются в .precomp
каталоги.
Значит, запуск даже онлайн-приложения всегда занимает>= 130 мс?
На моей машине это около 120 мсек. Но да, примерно так. На данный момент. Частично это вызвано рядом инициализаций, которые выполняются при запуске: хотя было уделено много внимания тому, чтобы не выполнялись ненужные инициализации при запуске, это не подвергалось тщательной проверке в течение многих лет, как Perl.
Если вы сравниваете это, например, с Perl, вы должны понимать, что Raku предоставляет вам встроенный Moose. Если вы запустите perl -MMoose -e ''
на моей машине время запуска всего на несколько миллисекунд ниже, чем у Raku.