SlideShare a Scribd company logo
Phalconを使ってみた感想と
「最速」であるという事について
大谷 祐司
株式会社インテリジェンス
マーケティング統轄本部
自己紹介
・山口県下関出身の33歳
・マーケティング部署のシステムチームに所属。
・趣味は車とプログラミングです。
・3月にパパになりました。
アジェンダ
・Phalconについて
・実際に開発で使ってみた感想
・「最速」について考えてみた
Phalconについて
Phalcon勉強会資料
人気急上昇中!
人気急上昇中!
バージョンUPの履歴
⇒だいぶ落ち着いてきた印象。
127日
48日
62日
314日
Ver0.4.5:2012/11/15
Ver1.0.0:2013/03/22
Ver1.1.0:2013/05/09
Ver1.2.0:2013/07/10
Ver1.3.0:2014/05/20
2.0リリース予定!!
誰が開発しているのか?
特定の個人や企業が開発しているのではなく、
PhalconTeamがコミュニティとして開発を行っています。
http://phalconphp.com/en/team
実際に開発で使ってみた感想
小規模な社内システムで実験的に採用。
人の地道な手作業を自動化するシステム。
画面数:6
バッチ:2本
DBのテーブル数:8
開発者:1人 (私です)
どれくらいの規模のシステム?
使ってみた感想
フレームワーク本体に手を入れる事が困難
⇒誰かがこっそり改造する事は無いが、
ソースの確認が難しい(C言語で書かれている)
※Phalcon2系はZephirという独自言語で実装
使ってみた感想
シンプルな設定ファイルが使いやすい。
・config.php : 設定を配列でConfigクラスに与える。
DBの設定やソースのディレクトリ等。
・loader.php : オートローダーの設定
・services.php : DIコンテナへ機能の設定
ただし環境毎の個別設定は用意されていない。
独自テンプレートエンジンの「volt」
⇒twigの経験があったのでスムーズに利用できた。
まずはフレームワークのスケルトンをコマンドで生成。
⇒phalcon create-project XXX
extensionはcomposerで管理できるので、スムーズに開発できる。
バッチ作成は PhalconCLITaskを継承して簡単に作成可能。
画面用に作成したModelもそのまま利用できる。
使ってみた感想
ハマったところ
DBエラーやコンパイルエラー等、ログ出力の設定が必要。
詳細に設定できる反面、使うまでに準備が必要。
参考情報はまだまだ少なく、かつ英語のものが多い。
直接SQLを実行する方法を見つけるのにも苦労した。
ごくたまにエラーが起きるのですが、フレームワーク内部で
起こったエラーに対して原因特定や対策が困難。
「最速」について考えてみた
Phalconの特徴
PHP extensionとして実装されているために、
・実行速度が速い
・メモリ使用量が少ない
という特徴を持っている。
なぜPHP extensionだと速いのか?
ソースコード
中間コード
実行
コンパイル
アクセラレータ
PHP実行環境
Phalcon
PHP実行環境に組み込むので、速く動作する。
普段利用しているFuelPHPと
Phalconの速度比較を行い、
実際にどれくらい速いか
計測してみました。
計測条件
・PHP5.5/MySQL5.6
・DBから1000レコードをSelectして
結果を画面表示するWebシステム
・Apacheログのレスポンスタイムで、
5回の計測を行った平均を使用
FuelPHP結果
DBアクセス 時間(マイクロ秒) メモリ(bite)
標準DB 104,539 11,294,944
PDO 156,635 17,780,272
ORM 779,926 11,155,696
DBアクセス 時間(マイクロ秒) メモリ(bite)
標準DB 87,393 9,822,952
PDO 139,650 16,569,016
ORM 744,167 9,477,896
OPcache Off
OPcache On
Phalcon結果
DBアクセス 時間(マイクロ秒) メモリ(bite)
PDO 11,521 4,428,728
PHQL 47,367 6,723,480
ORM 46,287 6,721,464
SimpleQuery 45,182 6,702,584
DBアクセス 時間(マイクロ秒) メモリ(bite)
PDO 10,921 4,401,960
PHQL 45,778 6,690,264
ORM 46,391 6,688,328
SimpleQuery 43,177 6,702,584
OPcache Off
OPcache On
PDOの利用で
Phalconが約8倍速い結果に
FuelPHP Phalcon
10,92187,393
単位:マイクロ秒
ORMを使うと、約16倍の速度差
単位:マイクロ秒
FuelPHP Phalcon
46,391744,167
メモリ使用量も約 2/3。
FuelPHP Phalcon
4,402kb6,668kb
※ORM利用時
確かに速かった!!
・チームとしてメインはしばらくFuelPHPのままだと思う。
⇒採用実績、情報の多さ、経験者の多さから。
・パフォーマンスが求められるシステムに採用していきたい。
・これからもっと存在感を出してくると思うので、
しっかり情報をキャッチしたい。特に2.0は要注目。
これからもPhalconを使うか?
ご清聴ありがとうございました。

More Related Content

PDF
Yet another use of Phalcon
PPTX
受託開発のPhalcon
PDF
Phalcon + AngularJSで作る動画プラットフォーム
PDF
Laravel管理画面ジェネレーター
PDF
PhucSon Software Company - Image Present
PDF
Next.js Storybook Driven Development
KEY
スマートフォンにおけるアニメーション実装 ~FlashからHTML5へシフトするには~
PPTX
Hack+FuelPHPによるWebサービス開発
Yet another use of Phalcon
受託開発のPhalcon
Phalcon + AngularJSで作る動画プラットフォーム
Laravel管理画面ジェネレーター
PhucSon Software Company - Image Present
Next.js Storybook Driven Development
スマートフォンにおけるアニメーション実装 ~FlashからHTML5へシフトするには~
Hack+FuelPHPによるWebサービス開発

What's hot (20)

PDF
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
PDF
Redmineの9年間の歩みを振り返ってみる
PDF
モバイルオンラインゲーム運用のための開発
PDF
Mautic meetup tokyo #2 lt MAとSFA/CRMの違い
PDF
モバイルゲームビルドパイプラインとChatOps
PDF
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
PDF
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
PDF
Firefox OS App Dev
PDF
ソフトウェアメトリクス概要 20160514
PDF
Unityでこんなことができる KLab×博多Tech塾
PDF
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
PDF
ご紹介、GUIでサクッと自動応答システムを作る方法 ー Slack/LINEとの連携も簡単 ー FrontOps : フロント・オプス
PPTX
VyOSで作るIPv4 Router/IPv6 Bridge
PPTX
Redmine4時代のプラグイン開発 redmine.tokyo #13
PDF
[CT10] CTO とチョークトーク! 私たちがクラウド時代/AI時代に求める技術者
PDF
Tapjoy indies stream-ustream第2弾
PDF
Web App Platform Firefox
PDF
Firefox OS Updates 201311
PDF
運営型モバイルゲームの運用について
PPTX
可読性の高いプログラムを書くために
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
Redmineの9年間の歩みを振り返ってみる
モバイルオンラインゲーム運用のための開発
Mautic meetup tokyo #2 lt MAとSFA/CRMの違い
モバイルゲームビルドパイプラインとChatOps
次世代プラットフォームでのHTML5アプリ開発 Firefox OS/Ubuntu Touch
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
Firefox OS App Dev
ソフトウェアメトリクス概要 20160514
Unityでこんなことができる KLab×博多Tech塾
Unityネイティブプラグインの勧め 〜UnityでiOS, AndroidのAPIを利用する方法〜
ご紹介、GUIでサクッと自動応答システムを作る方法 ー Slack/LINEとの連携も簡単 ー FrontOps : フロント・オプス
VyOSで作るIPv4 Router/IPv6 Bridge
Redmine4時代のプラグイン開発 redmine.tokyo #13
[CT10] CTO とチョークトーク! 私たちがクラウド時代/AI時代に求める技術者
Tapjoy indies stream-ustream第2弾
Web App Platform Firefox
Firefox OS Updates 201311
運営型モバイルゲームの運用について
可読性の高いプログラムを書くために
Ad

Viewers also liked (20)

PPTX
3流プログラマーから見たPhalconとWISP
PPT
PHP buildpackでhackとphalconが動いた件について
PPTX
爆速フレームワークでREST APIを作った話
PDF
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
PDF
Behatで行う、E2Eテスト入門
PDF
今、最もイケてるPHPフレームワークLaravel4
PDF
Phalcon 謹製テンプレートエンジン Volt - Meet phalcon Volt
PPT
Dependency management in PHP & ZendFramework 2
PDF
はじめてのCodeIgniter
PDF
PHP勉強会 #51
PDF
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
PDF
PHPUnitでリファクタリング
PDF
CodeIgniter入門
PDF
はじめてのSymfony2
PDF
Symfony2でより良いソフトウェアを作るために
PDF
Codeigniter3フレームアップデート
PDF
Code igniterを初めて使うときにはまった4つのポイント
PDF
Vue.js for HIKARABO
PDF
Fluentdのお勧めシステム構成パターン
PDF
React JS and why it's awesome
3流プログラマーから見たPhalconとWISP
PHP buildpackでhackとphalconが動いた件について
爆速フレームワークでREST APIを作った話
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
Behatで行う、E2Eテスト入門
今、最もイケてるPHPフレームワークLaravel4
Phalcon 謹製テンプレートエンジン Volt - Meet phalcon Volt
Dependency management in PHP & ZendFramework 2
はじめてのCodeIgniter
PHP勉強会 #51
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
PHPUnitでリファクタリング
CodeIgniter入門
はじめてのSymfony2
Symfony2でより良いソフトウェアを作るために
Codeigniter3フレームアップデート
Code igniterを初めて使うときにはまった4つのポイント
Vue.js for HIKARABO
Fluentdのお勧めシステム構成パターン
React JS and why it's awesome
Ad

More from Yuji Otani (20)

PPTX
SKYDISCのIoTを支えるテクノロジー
PPTX
Hack/HHVMの最新事情とメイン言語に採用した理由
PPTX
Redisの特徴と活用方法について
PPTX
「技術のインテリジェンスを創る」をどうやって実現するか
PPTX
Why choose Hack/HHVM over PHP7
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
PPTX
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
PPTX
PHP7がリリースされたいま、 改めてHackについて考える。
PPTX
FuelPHP × HHVM サービス開発事例
PPTX
Hack言語に賭けたチームの話
PPTX
スタートアップにおける技術チームの作り方
PPTX
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
PPTX
【初心者向け】Go言語勉強会資料
PPTX
NoSQL勉強会資料(2015/03/12@ヒカラボ )
PPTX
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
PPTX
Redis勉強会資料(2015/06 update)
PPTX
【基礎編】社内向けMySQL勉強会
PPTX
Nginx勉強会
PPTX
PHP基礎勉強会
PPTX
負荷分散勉強会
SKYDISCのIoTを支えるテクノロジー
Hack/HHVMの最新事情とメイン言語に採用した理由
Redisの特徴と活用方法について
「技術のインテリジェンスを創る」をどうやって実現するか
Why choose Hack/HHVM over PHP7
PHP7ではなくHack/HHVMを選ぶ理由
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
PHP7がリリースされたいま、 改めてHackについて考える。
FuelPHP × HHVM サービス開発事例
Hack言語に賭けたチームの話
スタートアップにおける技術チームの作り方
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
【初心者向け】Go言語勉強会資料
NoSQL勉強会資料(2015/03/12@ヒカラボ )
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
Redis勉強会資料(2015/06 update)
【基礎編】社内向けMySQL勉強会
Nginx勉強会
PHP基礎勉強会
負荷分散勉強会

Phalcon勉強会資料

Editor's Notes