Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TruffleでPHPぽい言語を実装したら爆速だった話 / truffle php at jjug night seminar
Search
Naoki Kishida
February 27, 2019
Technology
3
2.4k
TruffleでPHPぽい言語を実装したら爆速だった話 / truffle php at jjug night seminar
TruffleでPHPを実装したら爆速だった話です
Naoki Kishida
February 27, 2019
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
Java 22 Overview
kishida
1
240
Is Object-Oriented nessesary?
kishida
0
56
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
33
23k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
5k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
23
14k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
25
7.3k
Java 21の概要 / outline of Java 21
kishida
10
6.2k
エンジニアはLLMとどう付き合うか / How engineer get along with LLM
kishida
19
14k
Other Decks in Technology
See All in Technology
Okioに愛を込めて
ryunen344
3
660
AWS サポート直伝! AWS SAW を使ってトラブルシューティングを効率化しよう
furuton
0
110
WebサーバーとPHP実行方式を きちんと理解してPHPランタイムを 適切に使い分ける - PHPカンファレンス福岡2024
ysknsid25
2
120
20分で分かるIAM全機能 /20240621-aws-summit-iam
opelab
28
7.9k
Ruby on Browser
tmtms
1
830
20240619_今すぐ試せるCopilot
ponponmikankan
4
580
iPaaS入門&自社サービスで利用してみた
ippei2480
0
140
120リポジトリを1つのMonorepoに統合した理由
disc99
1
330
組織全体で品質を担保するための品管メンバーとしてのさまざまな役割
tarappo
3
900
負荷テスト on AWS のすすめ (AWS Summit Japan 2024 - Ministage session)
mabuchs
0
110
Comment nous avons transformé les Restos du Coeur en Cloud Provider
ju_hnny5
1
260
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話
takmin
0
130
Featured
See All Featured
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
RailsConf 2023
tenderlove
11
650
For a Future-Friendly Web
brad_frost
172
9.1k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Principles of Awesome APIs and How to Build Them.
keavy
122
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
GraphQLとの向き合い方2022年版
quramy
35
13k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
73
15k
Happy Clients
brianwarren
93
6.5k
Code Reviewing Like a Champion
maltzj
516
39k
Transcript
TrufflePHP JJUG 2019/2/27 LINE Fukuoka
• • LINE Fukuoka •
• @kis
Truffle •
Truffle • ()
Truffle
PHP • jparsec ( ) • https://github.com/jparsec/jparsec/ •
• +-<>.( ) • • • if • echo https://github.com/kishida/phpparser
<?php function fib($n) { if ($n
< 2) { return $n; } return fib($n - 1) + fib($n - 2); } echo "fib:".fib(31); echo "¥n";
(1/6) • Node
(2/6) • • (Specialization)
(3/6) • CallNode
(4/6) •
(5/6) • NodeDirectCallNodeCompilerAssertsGraal • Java
(6/6) • 5; • 0:, 4 %)5210:, 69; •
return=-2/ goto(JVM%)) jmp(*!' +) ReturnException #+&"$(87 resultObject <3.
<?php function fib($n) { if ($n < 2) {
return $n; } return fib($n - 1) + fib($n - 2); } $start = microtime(1); echo "fib:".fib(31); echo "¥n"; echo "time:".(microtime(1) - $start); echo "¥n"; fib(31);fib(31);fib(31);fib(31);fib(31); $start = microtime(1); echo "fib:".fib(31); echo "¥n"; echo "time:".(microtime(1) - $start); echo "¥n";
• (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
(JIT) • PHP 7.3PHP5.63 • PHP7.37 • Truffle+GraalVM
CEPHP7.3 • Truffle+GraalVM EEPHP7.32 • GraalVM CE PHP7.32 • GraalVM EE PHP7.34
• JIT • •
• EE PHP7.3 • CE PHP7.3
• PHP # &!"' • %
• • EE$CE% <?php function fib($n) { if ($n < 2) { return $n; } return fib($n - 1) + fib($n - 2); } echo "fib:".fib(31); echo "¥n";
• Real$) "UserCPU! " • JVMUser" ' •
( CPU" ' • GraalVMRealUser & • Graal#% ( CPU"
• PHPPHP3PHP4PHP5PHP7 '5# !"(PHP6&8) • (0, +*:% PHP7941
• "$!(03 • . '5# (0,6 -2 • 5/$7)#(Specialization)
• GraalVM • Truffle • "
# SimpleLanguage • Writing a Language in Truffle • gitter ! % • Graal&$