Submit Search
Upload
FuelPHPで3種のprofilerを使ってみた
•
18 likes
•
15,509 views
Katsuhiro Miura
Follow
PHPカンファレンス2013で発表したスライドです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 79
Download now
Download to read offline
Recommended
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
KeijiUehata1
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
Laravelを用いたゲームサーバーのチューニング
Laravelを用いたゲームサーバーのチューニング
NOW PRODUCTION
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
Recommended
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
KeijiUehata1
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
Laravelを用いたゲームサーバーのチューニング
Laravelを用いたゲームサーバーのチューニング
NOW PRODUCTION
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
Taichi Inaba
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Go Maeda
Docker friendlyPHP / Laravel
Docker friendlyPHP / Laravel
Kentarou Takeda
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Narimichi Takamura
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
ARグラスの自作と6DoF化
ARグラスの自作と6DoF化
emon 石川
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Recruit Lifestyle Co., Ltd.
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
Redmine + Lychee導入のアンチパターン
Redmine + Lychee導入のアンチパターン
agileware_jp
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
Takafumi ONAKA
私にとってのテスト
私にとってのテスト
Takuto Wada
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
More Related Content
What's hot
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
Taichi Inaba
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Go Maeda
Docker friendlyPHP / Laravel
Docker friendlyPHP / Laravel
Kentarou Takeda
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Narimichi Takamura
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
ARグラスの自作と6DoF化
ARグラスの自作と6DoF化
emon 石川
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Recruit Lifestyle Co., Ltd.
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
NTT DATA Technology & Innovation
Redmine + Lychee導入のアンチパターン
Redmine + Lychee導入のアンチパターン
agileware_jp
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
Takafumi ONAKA
私にとってのテスト
私にとってのテスト
Takuto Wada
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
What's hot
(20)
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Docker friendlyPHP / Laravel
Docker friendlyPHP / Laravel
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
ARグラスの自作と6DoF化
ARグラスの自作と6DoF化
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Redmine + Lychee導入のアンチパターン
Redmine + Lychee導入のアンチパターン
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
私にとってのテスト
私にとってのテスト
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Similar to FuelPHPで3種のprofilerを使ってみた
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
Hideo Kashioka
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
第21回Creators MeetUp
第21回Creators MeetUp
Kenichi Mukai
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介
Naoto Mawatari
Osc2014
Osc2014
Soudai Sone
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
はじめての FuelPHP
はじめての FuelPHP
Sho A
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
賢次 海老原
FukuokaPHP 3
FukuokaPHP 3
ichikaway
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
WCO2012「PHP教室」
WCO2012「PHP教室」
Takuma Morikawa
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
Xhprof
Xhprof
Hisashi Aruji
Similar to FuelPHPで3種のprofilerを使ってみた
(20)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
第21回Creators MeetUp
第21回Creators MeetUp
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介
Osc2014
Osc2014
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
はじめての FuelPHP
はじめての FuelPHP
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
FukuokaPHP 3
FukuokaPHP 3
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
WCO2012「PHP教室」
WCO2012「PHP教室」
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
Xhprof
Xhprof
Recently uploaded
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Recently uploaded
(10)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
FuelPHPで3種のprofilerを使ってみた
1.
FuelPHPで 3種のProfilerを使ってみた PHP カンファレンス 2013 2013/09/14 株式会社 サイバード 三浦 克浩 13年9月14日土曜日
2.
アジェンダ •自己紹介 •プロファイラとは •New Relicについて •xhprofについて •PHP Quick
Profilerについて 13年9月14日土曜日
3.
自己紹介 • 名前:三浦 克浩 •
Twitter ID:@MiuraKatsu • 仕事:ソーシャルゲーム開発 • 好きなフレームワーク: CakePHP、Yacafi • 浦和レッズ: 13年9月14日土曜日
4.
プロファイラ使ってますか? 13年9月14日土曜日
5.
プロファイラとは プロファイラ(英: Profiler)は性能解析ツールであり、 プログラム実行時の各種情報を収集する。特に、関数 呼び出しの頻度やそれにかかる時間を計測する。出力 は記録したイベントの羅列(トレース)の場合と、観測 したイベント群の統計的要約(プロファイル)の場合が ある。 出典: http://ja.wikipedia.org/wiki/ %E6%80%A7%E8%83%BD%E8%A7%A3%E6%9E%90 13年9月14日土曜日
6.
要はパフォーマンス・チューニングと ボトルネック調査の時に使うアレ 13年9月14日土曜日
7.
こんな時とか 13年9月14日土曜日
8.
こんな時とか こんな時に使うアレ 13年9月14日土曜日
9.
諸般の事情により FuelPHPでパフォーマンス・チューニング 使わざるを得ない状況に 13年9月14日土曜日
10.
FuelPHPでパフォーマンス・チューニング 幾つかのプロファイラを使ってみた その時ゴニョゴニョしたことのまとめ 13年9月14日土曜日
11.
FuelPHPで∼を使うには New Recli編 https://newrelic.com/ 13年9月14日土曜日
12.
New Relicとは 13年9月14日土曜日
13.
New Relicとは SaaS型パフォーマンス 監視サービス 13年9月14日土曜日
14.
エージェントを インストールするだけで 13年9月14日土曜日
15.
こんな画面とか 13年9月14日土曜日
16.
こんな画面が 13年9月14日土曜日
17.
超お手軽 自分、SaaSですから 13年9月14日土曜日
18.
さらに 13年9月14日土曜日
19.
Summary 13年9月14日土曜日
20.
Trace details 13年9月14日土曜日
21.
メソッド単位で 13年9月14日土曜日
22.
超べんり ※ただしイケメン有料版に限る 13年9月14日土曜日
23.
13年9月14日土曜日
24.
必要な時だけ 13年9月14日土曜日
25.
対応フレームワーク • CakePHP 1.2,
1.3, and 2.* • CodeIgniter 2 • Drupal 6 and 7 • Joomla 1.5 and 1.6 • Kohana 3.2 and 3.3 • Magento 1.5 and 1.6 • MediaWiki • QDrupal • Symfony 1 • WordPress • Yii • Zend Framework 1 13年9月14日土曜日
26.
_人人人人人人人人人人人人人人人_ > まさかの FuelPHP
非対応 ww <  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ 13年9月14日土曜日
27.
非対応だと 全部 index.php 13年9月14日土曜日
28.
非対応だと 全部 index.phpアクセスした URLで分けたい 13年9月14日土曜日
29.
ゴニョゴニョします NewRelicの インストール方法は各自で 13年9月14日土曜日
30.
index.php try { $response =
Request::forge()->execute()->response(); } 47行目位∼ 13年9月14日土曜日
31.
index.php try { //$response =
Request::forge()->execute()->response(); $request = Request::forge(); $response = $request->execute()->response(); //New Relic対応 if (extension_loaded ('newrelic')) { $segments = $request->uri->get_segments(); $newrelic_controller = isset($segments[1]) ? $segments[1] : null; $newrelic_action = isset($segments[2]) ? $segments[2] : null; $newrelic_params = isset($segments[3]) ? $segments[3] : null; newrelic_name_transaction ( $newrelic_controller . '/' . $newrelic_action . '/' . $newrelic_params); } } 13年9月14日土曜日
32.
なんでそんな処理に? newrelic_name_transaction( ) に渡したstringはURLとして扱われる $request->uri->get_segments( ) でURLを配列として取得 ‘/’で結合してnewrelic_name_transaction(
)に 13年9月14日土曜日
33.
13年9月14日土曜日
34.
注意点 Request::forge()->execute()->response() を抜けたあとで処理しているので、 途中でReturnせずにExitしたりRedirectしたりすると 全部 index.php 扱い 13年9月14日土曜日
35.
問題点 NewRelicはパフォーマンス監視サービス しきい値を超えて遅いものしか 分析できない 13年9月14日土曜日
36.
問題点 NewRelicはパフォーマンス監視サービス しきい値を超えて遅いものしか 分析できない 個々の処理についても詳しく調べたい! 13年9月14日土曜日
37.
FuelPHPで∼を使うには xhprof編 http://pecl.php.net/package/xhprof 13年9月14日土曜日
38.
xhprofとは facebook.comの中の人が 作ったプロファイラ 13年9月14日土曜日
39.
プロファイル情報がブラウザで見られる 13年9月14日土曜日
40.
プロファイリングの階層表示も 13年9月14日土曜日
41.
13年9月14日土曜日
42.
処理のフローをグラフ化 13年9月14日土曜日
43.
13年9月14日土曜日
44.
13年9月14日土曜日
45.
ボトルネックが一発で! 13年9月14日土曜日
46.
超べんり 13年9月14日土曜日
47.
ゴニョゴニョします xhprofの インストール方法は各自で 13年9月14日土曜日
48.
index.php // Boot the
app require APPPATH.'bootstrap.php'; 43行目位∼ 13年9月14日土曜日
49.
index.php // xhprofile if(function_exists('xhprof_enable')){ xhprof_enable(); } //
Boot the app require APPPATH.'bootstrap.php'; bootstrap.phpの前で xhprof_enable() 13年9月14日土曜日
50.
index.php // Boot the
app require APPPATH.'bootstrap.php'; if(function_exists('xhprof_disable')) { register_shutdown_function( function() { $xhprof_data = xhprof_disable(); $XHPROF_ROOT = '/var/www/xhprof/'; //xhprofをインストールしたディレクトリ $XHPROF_SOURCE_NAME = 'fuelphp'; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default('/tmp'); $run_id = $xhprof_runs->save_run($xhprof_data, $XHPROF_SOURCE_NAME); echo "<a href="http://".$_SERVER["SERVER_ADDR"]."/xhprof_html/index.php?run= $run_id&source=$XHPROF_SOURCE_NAME">xhprof Result</a>n"; }); } bootstrap.phpの後で register_shutdown_function() 13年9月14日土曜日
51.
core/bootstrap.phpの中でも register_shutdown_function()が 呼ばれてる Event::shutdown()の実行 この処理の後に実行させたいので bootstrap.phpの後で register_shutdown_function() なんでそんな処理に? 13年9月14日土曜日
52.
13年9月14日土曜日
53.
13年9月14日土曜日
54.
ログになら Log::debug("["
. $_SERVER['REQUEST_URI'] . "] -> http://". $_SERVER["SERVER_ADDR"]."/xhprof_html/index.php?run=$run_id&source= $XHPROF_SOURCE_NAME"); echo "<a href="http://".$_SERVER["SERVER_ADDR"]."/xhprof_html/index.php? run=$run_id&source=$XHPROF_SOURCE_NAME">xhprof Result</a>n"; 13年9月14日土曜日
55.
問題点 インストールがちょっと面倒くさい peclだとコケるし Graphvizとか必要だし 結果ファイルがダブつく /tmpを何度かパンパンにしました もっと詳細な情報がほしい! 13年9月14日土曜日
56.
FuelPHPで∼を使うには PHP Quick Profiler編 http://www.particletree.com/features/php-quick-profiler/ 13年9月14日土曜日
57.
PHP QuickProfilerとは particletree.comの中の人が 作った プロファイラ 13年9月14日土曜日
58.
13年9月14日土曜日
59.
13年9月14日土曜日
60.
カッコいいGUI 13年9月14日土曜日
61.
13年9月14日土曜日
62.
多機能 Log、SQL Query、 Memory、LoadFile、etc... 13年9月14日土曜日
63.
超べんり 13年9月14日土曜日
64.
なにより 13年9月14日土曜日
65.
FuelPHP標準装備 13年9月14日土曜日
66.
FuelPHP標準装備 13年9月14日土曜日
67.
超お手軽 てゆうか、これ絶対入ってるよね 13年9月14日土曜日
68.
問題点 表示(echo)してるだけ 保存できない 非表示 ($config[‘profiling’] = false) 取れない 13年9月14日土曜日
69.
https://github.com/MiuraKatsu/fuelphp-profiler-log Packageを作った 13年9月14日土曜日
70.
プロファイル情報をDebug Logに出力 画面に表示/非表示にかかわらず取得可能 出力する情報種別も選択可 13年9月14日土曜日
71.
ゴニョゴニョしました ProfilerLogの インストール方法は・・・ 13年9月14日土曜日
72.
インストール方法 package配下に展開 core/classes/profiler.phpの差し替え patch -u core/classes/profiler.php
< packages/profiler-log/patch/profiler.patch $config[‘profiler’]の設定 git clone -recursive git://github.com/MiuraKatsu/fuelphp-profiler-log.git 13年9月14日土曜日
73.
やっていること •core/classes/profiler.phpにメソッドの追加 •Event::shutdown()にProfileLog::shutdown登録 •ProfilerLog::shutdown()でプロファイルデータ取得 •ついでにSessionIdも追加 •Log::debug()に指定したデータをprint_r()で出力 13年9月14日土曜日
74.
こんな感じ INFO - 2013-09-08
18:28:19 --> FuelCoreRequest::__construct - Creating a new Request with URI = "welcome/index" INFO - 2013-09-08 18:28:19 --> FuelCoreRequest::execute - Called INFO - 2013-09-08 18:28:19 --> FuelCoreRequest::execute - Setting main Request DEBUG - 2013-09-08 18:28:19 --> Array ( [session_id] => ce1d264276ff7a28bf33883bf69d173a [output_data] => Array ( [logs] => Array ( [console] => Array ( [0] => Array ( [data] => 46.040 ms [type] => speed [name] => FuelCoreProfiler::init Start ) [1] => Array ( [data] => 67.952 ms [type] => speed [name] => FuelCoreFuel::init End ) [2] => Array 13年9月14日土曜日
75.
展開 Driverを追加すれば、 DBとか fluentdとかにも 13年9月14日土曜日
76.
•New Relicで当たりをつける •xhprofでボトルネックを絞り込む •ProfilerLogで詳細情報を取得する まとめ 13年9月14日土曜日
77.
•New Relicで当たりをつける •xhprofでボトルネックを絞り込む •ProfilerLogで詳細情報を取得する まとめ みんなで幸せになろう 13年9月14日土曜日
78.
幸せになりたい エンジニア募集中 13年9月14日土曜日
79.
ご清聴ありがとうございました。 13年9月14日土曜日
Download now