狠狠撸
Submit Search
PHP buildpackでhackとphalconが動いた件について
?
Download as PPT, PDF
?
2 likes
?
3,844 views
健治郎 安井
Follow
1 of 25
Download now
Download to read offline
More Related Content
PHP buildpackでhackとphalconが動いた件について
1.
CF-PHP-BUILD-PACK を使って 、 HACK
アプリ、 PHALCON FRAMEWORK をデプロイしてみる 安井 健治郎 2014.05.23
2.
Yuipapa は、 こんな 奴? yuipapa 安井
健治郎 – 年齢 不詳 – 趣味 カート?料理?プログラ ミング 映画鑑賞?音楽鑑賞 etc. – 今年こそ 浦和レッズ 命!
3.
本日の発表概要 ? Hack とは? ?
cf-php-build-pack の概要 ? Buildpack の設定ファイルを作成する ? デプロイして、試してみよう ? PHP vs Hack どちらが、速い? ? Phalcon framework とは? ? cf-php-build-pack でカスタムエクステンショ ンを追加する ? 動作確認
4.
Hack とは?
5.
Hack とは? Facebook より
OSS として リリースされた HHVM ( HipHop Virtual Machine for PHP )向けの開発言語
6.
Hack の特徴 ?PHP との互換性有 ?静的型付き言語 ?Null
を許容するか指定可 ?可変引数対応 ?<<Override>> の明記 ?型へのエイリアス定義 ?Collections,Shapes 、 Tuples などの 複合型が利用可 ?Imm をコレクションに付けると書 き込み不可属性となる ?Generics 機能の利用可
7.
HHVM の特徴 ?PHP 用の
JIT コンパイラ ?PHP のコードをダイナミックにバ イナリコードへと変換 ?トレース型の JIT コンパイル手法を 採用 ?Facebook 社内では将来的にはすべ ての PHP 実行環境を hhvm に置き換 える計画
8.
cf-php-build- pack の概要
9.
cf-php-build-pack の概要 ?Web サーバーは、
apache 、 nginx を選択可能 ?PHP 実行環境は、 PHP と HHVM ( Hack : Facebook が公開した PHP の JIT )を選択可 ?apache 、 nginx 、 PHP 、 hhvm の バージョンを各々設定可能 ?apache 、 nginx 、 PHP 、 hhvm の 設定ファイルを各々設置可能 ?apache 、 PHP のモジュールを追加 可能
10.
アプリの構 成
11.
Buildpack 用のアプリの 基本構成 / htdocs┳
(ドキュメントルルート) ┃ ┣ .bp-config options.json┳ ┃ ┣ nginx ┳ fastcgi_params ┃ ┣ php
12.
Buildpack の 設定ファイ ルを作成す る
13.
options.json ( Buildpack の設定ファイル)を作成 する { "WEB_SERVER":
“nginx", "PHP_VM": "php", } 残りは、デフォルト値を利用 https://github.com/dmikusa-pivotal/cf-php-build-p
14.
デプロイし て、試して みよう
15.
? gcf push
–時に b オプション で明示的に buildpack を指定 gcf push hack-app –b https://github.com/dmikusa-pivotal/c
16.
PHP vs Hack どちらが、 速い?
17.
PHP vs Hack
どちらが、速 い? 新プログラミング言語「 Hack 」スタート ?アップガイド [Kindle 版 ] に掲載されてい る、 100 万回ループ処理を行う単純なプ ログラムを nginx+fastcgi+HHVM vs nginx+fastcgi+php で実行し、処理時間を比較してみました 。
18.
function loop() { $sum
= 0; for ($i = 0; $i < 1000000; $i++) { $sum += $i * 2; } } function loop_test() { $startTime = microtime(true); loop(); $endTime = microtime(true); echo ($endTime - $startTime) . "secn"; } function main() { loop_test(); loop_test(); loop_test(); } main();
19.
$ curl http://phpbench.10.244.0.34.xip.io/benchmark.php 0.052242994308472sec 0.046237945556641sec 0.045654058456421sec $
curl http://hhvmbench.10.244.0.34.xip.io/benchmark.php 0.10812187194824sec 0.09779691696167sec 0.097671031951904sec あれ?
20.
Hack は、お作法に則って書かれたスクリプトでない と、本来の性能は出ない 場合により、 PHP
よりも遅くなるこ ともあり得る
21.
Phalcon framework とは? ?
MVC を実現する PHP の framewor ? PHP の拡張モジュールとして C 言語で書かれている ? developper tool がある ?専用のテンプレートエンジン ? Volt ?を内蔵している
22.
cf-php-build-pack でカスタムエクステン ションを追加する ディレクトリ構造 / .bp-config├── php│ ├── │
│ ├── php.ini │ extension├── phalcon.so│ ├── │ htdocs├── php.ini extension=phalcon.so を追加 http://docs.phalconphp.com/en/latest/reference/install.html#compilation
23.
付録
24.
リソース ? HHVM の
github リポジトリ https://github.com/facebook/hhvm ? hack コミュニティ http://hacklang.org/ ? HHVM コミュニティ http://hhvm.com/ ? Phalcon http://phalconphp.com/ja/
25.
质疑応答
Editor's Notes
このテンプレートは、トレーニング資料をグループ設定で紹介するための開始ファイルとして使用できます。 セクション セクションを追加するには、スライドを右クリックします。 セクションは、スライドを整理したり、複数の作成者による共同作業を容易にするのに役立ちます。 ノート ノート セクションは伝達メモとして使用したり、プレゼンテーション対象者に詳細情報を提供するために使用します。 これらのノートは、プレゼンテーションの実行時にプレゼンテーション ビューに表示されます。 フォント サイズに注意してください (アクセスしやすさ、見やすさ、録画、およびオンラインでの実行のために重要です) 調和のとれた色 グラフ、チャート、およびテキスト ボックスに特に注意してください。 参加者が白黒またはグレースケールで印刷することを 考慮してください。テスト印刷を行って、白黒およびグレースケールで印刷したときの状態を 確認してください。 グラフィックス、表、およびグラフ シンプルな構成にします。可能であれば、一貫性のある落ち着いたスタイルと色を使用してください。 すべてのグラフと表にラベルを付けてください。
プレゼンテーションの概要を述べ、 主要なトピックとその重要性を説明します。 主要なトピックをそれぞれ紹介します。 参加者にロード マップを示すために、 プレゼンテーション全体を通じて、 次に説明する特定のトピックを強調表示して、この概要スライドを繰り返し表示することができます。
これは、切り替えを使用した 概要スライドの例です。
これは、切り替えを使用した 概要スライドの例です。
Generics機能:コンパイル時に型指定されるようなクラス 4種のコレクション:Map、Pair、Set、Vector Imm:Immutable(書き込み不可能な) Nullを許容するしないは、変数の前に”?”を付けることで区別
トレース型のJITコンパイル手法:インタプリタによるコード実行中に頻繁に利用される処理を記録し、その部分をネイティブコードにコンパイルする 4種のコレクション:Map、Pair、Set、Vector AST:Abstract Syntax Tree=&gt;抽象構文木 PHPコードからASTを構築した上で、それをもとにしてHipHopバイトコード(HHBC)と呼ばれる中間コードを生成
プレゼンテーションは簡潔かつ明瞭ですか? 余分なコンテンツは付録に移動することを検討してください。 付録スライドを使用して、质疑応答時に参照するコンテンツや、参加者が今後より詳しい情報を調べるのに役立つコンテンツを記載します。
Download