TruffleでPHPぽい言語を実装したら爆速だった話 / truffle php at jjug night seminar
by
Naoki Kishida
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
TrufflePHP JJUG 2019/2/27 LINE Fukuoka
Slide 2
Slide 2 text
• • LINE Fukuoka • • @kis
Slide 3
Slide 3 text
Truffle •
Slide 4
Slide 4 text
Truffle • ()
Slide 5
Slide 5 text
Truffle
Slide 6
Slide 6 text
PHP • jparsec( ) • https://github.com/jparsec/jparsec/ • • +-<>.( ) • • • if • echo https://github.com/kishida/phpparser
Slide 7
Slide 7 text
Slide 8
Slide 8 text
(1/6) • Node
Slide 9
Slide 9 text
(2/6) • • (Specialization)
Slide 10
Slide 10 text
(3/6) • CallNode
Slide 11
Slide 11 text
(4/6) •
Slide 12
Slide 12 text
(5/6) • NodeDirectCallNodeCompilerAssertsGraal • Java
Slide 13
Slide 13 text
(6/6) • 5; • 0:, 4 %)5210:, 69; • return=-2/ goto(JVM%)) jmp(*!' +) ReturnException #+&"$(87 resultObject <3.
Slide 14
Slide 14 text
Slide 15
Slide 15 text
• (interpreter) on JDK 11 • Truffle JDK 11 • Truffle GraalVM CE • Truffle GraalVM CE • Truffle GraalVM EE • Truffle GraalVM EE • PHP 5.6 • PHP 7.3
Slide 16
Slide 16 text
(JIT) • PHP 7.3PHP5.63 • PHP7.37 • Truffle+GraalVM CEPHP7.3 • Truffle+GraalVM EEPHP7.32 • GraalVM CE PHP7.32 • GraalVM EE PHP7.34
Slide 17
Slide 17 text
• JIT • • • EEPHP7.3 • CEPHP7.3
Slide 18
Slide 18 text
• PHP #&!"' • % • • EE$CE%
Slide 19
Slide 19 text
• Real$)"UserCPU!" • JVMUser" ' • ( CPU" ' • GraalVMRealUser & • Graal#% ( CPU"
Slide 20
Slide 20 text
• PHPPHP3PHP4PHP5PHP7 '5# !"(PHP6&8) • (0, +*:% PHP7941 • "$!(03 • . '5#(0,6 -2 • 5/$7)#(Specialization)
Slide 21
Slide 21 text
• GraalVM • Truffle • " #SimpleLanguage • Writing a Language in Truffle • gitter!% • Graal&$