Стало интересно, насколько последний релиз ракуды быстр в сравнении с пятым перлом. До этого ранее ради интереса сравнивал быстродействие перла 5 в сравнении с питоном и руби. Сравнивал рассчётом суммы первых 30-ти чисел Фибоначчи. Перловка там проигрывала питону с рубями.
Теперь вот решил сравнить насколько шестёрка хороша в данной задаче.
Итак, что имеем:
Код на perl 5:
Код на perl 6:
Понятно, что перл 6 - это виртуальная машина, которая медленно запрягает но быстро едет, но как-то цифры всё-равно не радуют. Другое дело что раньше разница в работе была ещё более впечатляющей, разрабы оптимизируют код, ускоряют работу интерпретатора Rakudo и это не может не радовать.
Буду надеяться, что к стабильному релизу p6 мощЕй ещё добавят. Может даже что-нибудь напишу для себя на нём.
Теперь вот решил сравнить насколько шестёрка хороша в данной задаче.
Итак, что имеем:
% perl -v This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi % perl6 -v This is perl6 version 2015.09 built on MoarVM version 2015.09
Код на perl 5:
#!/usr/bin/perl
use strict;
use warnings;
sub fib {
my $n = shift;
if ( $n < 3 ) {
return 1;
}
return fib($n-1) + fib($n-2);
}
print fib(30) . "\n";
Код на perl 6:
#!/usr/bin/env perl6
sub fib ( Int $n ) {
if ( $n < 3 ) {
return 1;
}
return fib($n-1) + fib($n-2);
}
fib(30).say;
результаты:
% time perl fib.pl 832040 real 0m0.757s user 0m0.756s sys 0m0.000s % time perl6 fib.pl6 832040 real 0m8.946s user 0m8.912s sys 0m0.028sЧто-то как-то совсем не быстро и с большой нагрузкой на проц(в случае с перлом 6). Разница в скорости работы почти в 12 раз!
Понятно, что перл 6 - это виртуальная машина, которая медленно запрягает но быстро едет, но как-то цифры всё-равно не радуют. Другое дело что раньше разница в работе была ещё более впечатляющей, разрабы оптимизируют код, ускоряют работу интерпретатора Rakudo и это не может не радовать.
Буду надеяться, что к стабильному релизу p6 мощЕй ещё добавят. Может даже что-нибудь напишу для себя на нём.
Комментариев нет:
Отправить комментарий