くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

いまさら Xdebug を使ってみた

2009-04-11 02:27:31 | SEまわり
ちょっと PHP スクリプトの処理速度が気になるところがあって、ボトルネックを調べるために Xdebug を使ってみた。

Xdebug は pecl で一発インストール。

 
pecl install xdebug


ただ、どういう理屈か知らないけど、モジュールがインストールされるのは、/usr/local/lib/php/extensions/no-debug-non-zts-20060613 の下(FreeBSD 7.0 上の PHP 5.2.9 付属の pecl)

 
alpine:ooki % pecl version
PEAR Version: 1.7.2
PHP Version: 5.2.9
Zend Engine Version: 2.2.0
Running on: FreeBSD alpine.anseilen.org 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Mon Mar 23 22:44:34 JST 2009 root@alpine.anseilen.org:/usr/src/sys/i386/compile/GENERIC i386


 すっきりしないので、ひとつ上にシンボリックリンクを置く。

 
cd /usr/local/lib/php/extensions
ln -s ./no-debug-non-zts-20060613/xdebug.so ./


 次に、php.ini に次のディレクティブを追加し、httpd を再起動。

 
extension=xdebug.so
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = /tmp


 /tmp は誰でも読めるので、テスト環境などでは良いが、本番環境などでは適切なディレクトリを指定する。


 採取されるプロファイルデータはは、WinCacheGrind などのツールを使うと分かりやすい。
 これ一発で、どのモジュールのどの関数/メソッドが遅いかがすぐ分かった。

 用事が済んだら、php.ini の xdebug.profiler_enable = 0 にしておくこと。じゃないと永遠に記録を続けてしまい、いつか /tmp がはじける。

type P で USB ブートな Ubuntu を動かす (1)

2009-04-11 01:56:15 | SEまわり
type P で、USB デバイスから Ubuntu など動かしてみたいと思いまして。

かといって、type P 購入の身に大きな容量の USB メモリを買う余裕もなく(つっても、今 8GB で 1,200円くらいなのな)、まあ、いいかと思っていたところ、



こいつの 40GB のやつが転がっているのを発見。
とりあえずはこれで試してみることにした。

さっそく、Ubuntuのサイトから、日本語デスクトップ用の CD をダウンロードしてくる。

パソコンをこの CD からブートさせるのが本来の手順だが、自宅のマシンは FreeBSD サーバを仮想マシンとして常時運用しているため、止めたくない。

よって、VMWare の仮想マシンをひとつ Ubuntu 用に作った。
これだと、ISO イメージをそのまま CD-ROM として仮想マシンから使えるので、CD 媒体に焼く必要もない。

仮想マシン起動時に、USB-HDD が認識されないと困るので、VM → 取り外し可能デバイス → USB として、そこにある USB-HDD を選択して、有効にしておく。

Ubuntu が起動して、最初に出てくるメニューで「インストール」を選ぶ。
あとは、指示に従って進んでいくと、どこにインストールするかを聞かれるので、ここで USB-HDD を選ぶだけ。簡単。

作業は下のサイトを参考にした。
今はインストール中。


UbuntuをUSBストレージ(USBメモリ・HDDなど)にインストールするには - Ubuntu Japanese Wiki