TEDIA会員に登録したメールアドレスとパスワードを入力してください

メールアドレス:

     パスワード:


パスワードを忘れた方はパスワードの確認を行ってください。

TEDIA会員へのご登録がお済みで無い方はこちらで登録ができます


>> テクノロジーポータル TEDIA トップページへ戻る <<

Think IT Software Developer's Think IT Find-IT 失敗しないソフト選び Find-IT TEDIA テクノロジーポータル TEDIA インストールマニアックス2008 インストールマニアックス2008

TEDIA SponsorsOpen Source Web Development Tutorials - Dev Shed

タイマーを利用したPHPアプリのベンチマーク
(2009/01/22公開)

HTTP圧縮を使わないでデータベース行を表示

 前ページで説明したとおり、最初のベンチマーク例は、サンプルの「USERS」MySQLデータベーステーブルから10行をフェッチするのに要する時間の測定が目的です。読み出した行は、ブラウザ上に表示します。この例では、データをクライアントへ返すときにHTTP圧縮を使わないで、すべてのタスクを実行します。

 サンプルデータベーステーブルに以下のデータが投入されていることとします。

 対応するコードサンプルおよび各時間測定結果は以下のとおりです。


// example without using HTTP compression 

try{ 
// instantiate 'Timer' class 
$timer=new Timer(); 
// start timer 
$timer->start(); 
// connect to MySQL 
$db=new MySQL(array
('host'=>'host','user'=>'user','password'=>'password','database'=>'database')); 
$result=$db->query('SELECT * FROM users'); 
while($row=$result->fetchRow()){ 
echo 'ID: '.$row['id'].' Name: '.$row['name'].' Email: '.$row['email'].'<br />'; 

$elapsedTime=$timer->stop(); 
// display elapsed time 
echo 'Time spent in fetching database rows was '.$elapsedTime.' seconds'; 

catch(Exception $e){ 
echo $e->getMessage(); 
exit(); 


/* displays the following: 

ID: 1 Name: user1 Email: user1@domain.com 
ID: 2 Name: user2 Email: user2@domain.com 
ID: 3 Name: user3 Email: user3@domain.com 
ID: 4 Name: user4 Email: user4@domain.com 
ID: 5 Name: user5 Email: user5@domain.com 
ID: 6 Name: user6 Email: user6@domain.com 
ID: 7 Name: user7 Email: user7@domain.com 
ID: 8 Name: user8 Email: user8@domain.com 
ID: 9 Name: user9 Email: user9@domain.com 
ID: 10 Name: user10 Email: user10@domain.com 

Time spent in fetching database rows was 0.0053 seconds 

/* 



 見てのとおり、上述したベンチマークスクリプトはとても理解しやすいですね。基本的に、サーバーへの接続を含めて、MySQLから行を読み出す時間を測定するだけの内容です。サンプルデータベーステーブルに対してトリビアルクエリーを実行するだけですから、当然ながらこのプロセスは非常に短時間で処理されます。しかし、この例では、HTTP圧縮を使わないでデータを表示するように設定しました。

 ここまで来れば、すぐ前に定義した「タイマー」クラスの正確な利用方法が理解できたはずです。そこで、一歩先に進んでもう1つの似た例を設定しましょう。上記の例と似ていますが、今度はフェッチしたデータベース行をHTTP圧縮してクライアントに戻します。

 さあ、次ページに進みましょう。


前のページ     1    2    3    4    次のページ

Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.