PHPのプロファイラであるZ-RayのPreview版を試しました
朝10時にデプロイといわれると「早朝作業だ…」と思ってしまう程度には昼夜逆転しておりますうずらです、おはようございます。
ということで、朝10時デプロイのためにおきるぞと意気込んでいたら朝8時に起きてしまい、暇なのでウェブをグルグルしていたらZ-RayのPreviewについて英語のニュースをみかけました。
http://devzone.zend.com/6721/z-ray-technology-preview-released/
Z-rayというのはZend Serverに組み込まれた統合的なプロファイラ&デバッガで、気にはなっていましたが、いまだ試したことはありませんでした。
http://www.zend.com/en/products/server/z-ray
なので、スッと閉じそうになったのですが「Z-Ray can now be installed on Mac. So if you’re running Homebrew or MAMP」とあり、「あれ、Z-rayってZend Serverの売りでしょ?Zend Serverときりはなされたの?」と気になって読んでみたら実際そうだったので試してみましたのが今回のエントリです。
一応、Zend Server
Zend Serverは敬虔なPHPerなら知ってるとおもいますが(?)、ZendがつくっているPHPのプロプラで有料で機能拡張版みたいなアレのことです。
プロプラエタリ、エンタープライズなPHP実行環境だとおもえばよいのではないでしょうか。たとえばいまだ5.3をちゃんとサポートしたりとか、そういうやつです。
私は実行環境としてのZend Server自体にはそこまで興味はなかったんですが、ツールであるZ-rayについては気になっていました、しかし買うまでにはいたらず。
ただ、先日某カンファレンスで「AWSのイメージとして、時間貸しもしている」という話を聞き、その内試すか〜、とおもって結局ためさず今にいたります。
さておき、Z-Rayの話
Z-Rayはエンジン側に組み込む事で、アプリ側の改修無しにプロファイラ機能や、一部のデバッガ的な機能みたいなものがつかえるようになるものです。まあ、私としてはプロファイラ的な部分が気になる所でした。
まあ、色々機能があるっぽいので各自しらべてください、以下がヘルプです。
http://files.zend.com/help/Z-Ray/content/home.htm
前述の通り、有料のZend Serverがないと使えないものだったとおもうのですが、いつのまにか分離版があったようです。(検索すると結構前からか?)
http://www.zend.com/en/products/z-ray/z-ray-preview
いまはPreviewということなのか、メールアドレスなどをフォームにいれたらDLできました(adblockしてるとフォームが消える事がありますので注意)
では、試していきましょう!
インストール
「Macサポート!」の記事がきっかけではありますが、とりあえず私はUbuntu14試しました。
インストール方法ですが、自動インストールがあったので超簡単です。まずは以下のURLのフォームを入力し、ファイルをDLします。
http://www.zend.com/en/products/z-ray/z-ray-preview
今回、Z-Ray_Linux.tar.gz
だけDLしてきます。(install.shが勝手に本体をおとしてきてくれます)
以下がhistoryです。以下は、Vultrで試した手順なのでapacheからいれてますがまあどうこうないですね。ためしてませんが、ドキュメントをみるかぎりnginxでもうごかせるようです。
# apt-get install apache2 php5 php5-sqlite php5-curl php5-cli # a2enmod rewrite # php -v # wget http://xxxxxxxx/Z-Ray_Linux.tar.gz # tar xvzf Z-Ray_Linux.tar.gz # ZRay-Installer/install.sh # service apache2 restart # vi /var/www/html/text.php …
install.shは最初に環境をしらべてくれるので、たりないモジュールがあれば指摘されます、適当にいれましょう。
また、実行時の画面出力を見る限りどうやらApacheの設定も書き換えますので(後述のコンパネのために)、動いてるサイトにいれる場合は注意しましょう(あるいは、手動でもインストールできるので、そちらでやりましょう)。
使い方
http://your.host.example.com/ZendServer/
にアクセスするとzrayのコントロールパネルを開く事ができます。
あるいは、適当なPHPが設置されたURLにアクセスすると、ブラウザ下部にバーがでているとおもいます。
やりましたね、インストール完了です!
どんなだったの?
以下ツイッターをぺたぺたはっただけで雑ですみませんが、感動しました。
デプロイ待機(眠い
— uzulla (@uzulla) 2015年10月27日
あれ?zendのZ-RayってZendServer組み込みでなく、単体でも出るの?これは気になるな! / “Welcome to Z-Ray Preview” https://t.co/6uJstXpmwI
— uzulla (@uzulla) 2015年10月27日
あっ、すげえ、本当にZ-Ray動く
— uzulla (@uzulla) 2015年10月28日
なんかバーでてきた pic.twitter.com/7vazDU687Y
— uzulla (@uzulla) 2015年10月28日
しゅごい、コンパイルエラーすらバーで確認できる!!! pic.twitter.com/DwmKyl8qwP
— uzulla (@uzulla) 2015年10月28日
すごおい… pic.twitter.com/qh6JBta9Wv
— uzulla (@uzulla) 2015年10月28日
便利すぎる〜〜〜 pic.twitter.com/KOQ3pRVCew
— uzulla (@uzulla) 2015年10月28日
ファーwwww後から全部見れるwww pic.twitter.com/aZZ4yD5UrI
— uzulla (@uzulla) 2015年10月28日
早起きは三文の得って気分になるな
— uzulla (@uzulla) 2015年10月28日
リアルタイムにキャッチ出来るし便利すぎるのでは。
— uzulla (@uzulla) 2015年10月28日
実行時間リストや、呼び出し回数もばっちりだし、あとはコールグラフがあれば完璧という感じがある。
— uzulla (@uzulla) 2015年10月28日
発行されたSQL全部わかるし、それがどこからコールされたかもスタックトレースがでるの最高!!!! pic.twitter.com/DeW1nV19pC
— uzulla (@uzulla) 2015年10月28日
ちゃんとしててウケる pic.twitter.com/vZQgriX6Tz
— uzulla (@uzulla) 2015年10月28日
Z-rayためしたくてZendServerをアレする意欲が消滅した。
— uzulla (@uzulla) 2015年10月28日
はー、朝デプロイの前の暇つぶしに最高だった。
— uzulla (@uzulla) 2015年10月28日
今度実際につかってみようっと。 pic.twitter.com/xvXtfj87tP
こういう「面倒だし、ブラウザのバーでだしちまえ」というのはPHPの簡単便利的思想に実にマッチしていて、(時と場合にもよりますけど)実によいですね。
まとめ
どのメソッドがどれくらい時間かかっているか一目でわかるので大変便利、SQLも実行が全部みれて便利で最高!あとはコールグラフがでれば、大体事は済むのでは?
ちなみに、cliの実行もzrayコンパネに出力されるので確認する事が可能です。バッチ処理や一部分だけのベンチマークも確認できるって最高ですね。
ただ、残念ながらbuiltin serverではバーはでないようです…どうせなら出るようにしてくれないかな…そうしたら手元の開発がはかどるのにな〜〜。
こちらからは以上です。