На моем MacBook Pro приведенный выше код выполняется за 13,3 секунды. Возможно, это не демон скорости, но код запускается и завершается,

Кажется, вы намекаете, что беспокоитесь о производительности, но скорость Perl 6 может показаться не такой уж плохой после небольшого размышления. Вы считаете до довольно большого числа, и во многих вычислениях будут использоваться целые числа, слишком большие для родной целочисленной арифметики. Я попробовал версию вашего алгоритма с Perl 5 и модулем Math::Prime::Util, который был немного быстрее, если он мог использовать GMP, но намного медленнее с библиотека отключена установкой MPU_NO_GMP=1 в среде. Мой опыт работы с Java ограничен, но я думаю, что придумал достаточно простую реализацию Java JDK 8 с использованием java.math.BigInteger, которая работала несколько медленнее, чем Perl 6 на tio.run, и в несколько раз медленнее на моей системе. . Кодирование Perl 6 и Rakudo с использованием JVM выполняются аналогично реализации Java (также протестировано на моем компьютере).

Я получил небольшое улучшение производительности примерно на 1/3 меньше времени (40% по состоянию на августовский выпуск), добавив гипер в ваш код grep следующим образом:

my @list = lazy (1, 1, * + * … *).hyper.grep({ .is-prime });
 say @list[23];

Возникла проблема, из-за которой grep и hyper не могли нормально работать вместе в некоторых версиях Rakudo: https://github.com/rakudo/rakudo/issues/1740

Глядя на вывод perl6 --profile, похоже, что почти все время вычислений занимает .is-primetest («исключительное время» 98%). Похоже, что MoarVM использует LibTomMath вместо GMP для целочисленной математики с множественной точностью, а GMP работает быстрее. Возможно, в будущем появится интерес к библиотекам интерфейса GMP и другим интеграциям Perl 6, чтобы соответствовать Perl 5.

Реализация Java на tio.run: https://bit.ly/2LRw4C8 (30 сек)
Реализация Perl 5 на tio.run: https://bit.ly/2wHEs1q (5 сек)< br /> Perl 6 с гипер на tio.run для сравнения: https://bit.ly/2PuDsWd (16 сек)