Perl 6 и высокие нагрузки

27
Perl 6 и высокие нагрузки

description

 

Transcript of Perl 6 и высокие нагрузки

Page 1: Perl 6 и высокие нагрузки

Perl 6и высокие нагрузки

Page 2: Perl 6 и высокие нагрузки

Что такое нагрузка?

Page 3: Perl 6 и высокие нагрузки

Что такое нагрузка?

От 1 000 000посетитлей?

Page 4: Perl 6 и высокие нагрузки

Что такое нагрузка?

Или от одногокомпилятора?

Page 5: Perl 6 и высокие нагрузки

Perl 6 не один

Pugs

Rakudo

SMOPKindaPerl6

Elf

Page 6: Perl 6 и высокие нагрузки

Не только script.pl

Исходник .pl

Ассемблер .pir

Байт-код .pbc

Page 7: Perl 6 и высокие нагрузки

Веб-серверов много

Apache CGI

mod_perl

Ваш любимый сервер

Page 8: Perl 6 и высокие нагрузки

Сколькоспособов

оптимизации?

(МНОГО)

Page 9: Perl 6 и высокие нагрузки

Компиляция в байт-код

Page 10: Perl 6 и высокие нагрузки

Компиляция в байт-код

programme.pl

programme.pbc

Компилятор

Виртуальная машина

Page 11: Perl 6 и высокие нагрузки

Компиляция в байт-код

programme.pl

programme.pbc

Компилятор

Виртуальная машина + JIT

Page 12: Perl 6 и высокие нагрузки

Прекомпилированные модули

use Module;

Module.pir Module.pm

Page 13: Perl 6 и высокие нагрузки

Parrot::Embed

(Байткод, исполняемый в Perl 5)

Page 14: Perl 6 и высокие нагрузки

mod_parrot

(Аналог mod_perl, но для байткода)

Page 15: Perl 6 и высокие нагрузки

Nginx / 0W / mod_proxy

(Абсолютно стандартно)

Page 16: Perl 6 и высокие нагрузки

Компиляция в байт-код

Nginx / 0W / mod_proxy

Parrot::Embed

mod_parrot

Прекомпилированные модули

Page 17: Perl 6 и высокие нагрузки

Дизайн Perl 6

Page 18: Perl 6 и высокие нагрузки

Lazy lists

Директива async

Распараллеленные гипероператоры

Page 19: Perl 6 и высокие нагрузки

Многое реализованов самой виртуальной машине

Page 20: Perl 6 и высокие нагрузки

$ time pugs ‐e'say "HL++"'

real   0m0.382suser   0m0.348ssys    0m0.031s

Hello, World++ (Pugs)

Page 21: Perl 6 и высокие нагрузки

$ time perl6 ‐e'say "HL++"'

real   0m0.389suser   0m0.307ssys    0m0.061s

Hello, World++ (Rakudo)

Page 22: Perl 6 и высокие нагрузки

(Одинаково медленно)

Page 23: Perl 6 и высокие нагрузки

$ time wget http://real.perl6.ru

real   0m0.034suser   0m0.003ssys    0m0.001s

Пример с байткодом (VPS Apache CGI)

Page 24: Perl 6 и высокие нагрузки

$ time wget http://november.perl6.ru

real   0m0.027suser   0m0.003ssys    0m0.001s

Пример с кешем (VPS Apache CGI)

Page 25: Perl 6 и высокие нагрузки

(Одинаково быстро)

Page 26: Perl 6 и высокие нагрузки

Перспективы

Улучшенный синтаксический разбор

Новый JIT-компилятор

Новый сборщик мусора