Раку всегда разбирает?

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.

Другие вопросы по тегам