TruffleでPHPぽい言語を実装したら爆速だった話 / truffle php at jjug night seminar
by
Naoki Kishida
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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&$