Home arrow PHP arrow Page 3 - Using Timers to Benchmark PHP Applications

Displaying database rows without using HTTP compression - PHP

If you’ve been using PHP for a while, then it’s possible that you want to learn how to create benchmarking scripts. If this is true, then this series of tutorials will be pretty helpful. Welcome to the second article of the series “Benchmarking applications with PHP.” Composed of three parts, this series walks you through the development of several approaches aimed at benchmarking specific blocks of code and even entire PHP applications.

TABLE OF CONTENTS:
  1. Using Timers to Benchmark PHP Applications
  2. Defining a few working classes
  3. Displaying database rows without using HTTP compression
  4. Displaying database records using HTTP compression
By: Alejandro Gervasio
Rating: starstarstarstarstar / 4
April 30, 2008

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

As I stated in the section that you just read, the first benchmarking example that I’ll set up will be aimed at determining how long it takes to fetch ten rows from a sample “USERS” MySQL database table. They will be displayed on the browser after the retrieval process. In this case, all these tasks will be performed without using HTTP compression when the data is transferred back to the client.

Assuming that the sample database table has been populated with the following data,


ID

Name

Email

1

user1

user1@domain.com

2

user2

user2@domain.com

3

user3

user3@domain.com

4

user4

user4@domain.com

5

user5

user5@domain.com

6

user6

user6@domain.com

7

user7

user7@domain.com

8

user8

user8@domain.com

9

user9

user9@domain.com

10

user10

user10@domain.com


here is the corresponding code sample along with the respective timing results:


// 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


/*


As you can see, the benchmarking script shown above is very simple to grasp. Basically, all it does is time the retrieval of the rows from MySQL, including the connection to the server. Obviously, this process is performed very quickly, since only a trivial query is executed against the sample database table. But in this case, I opted to display the data without using HTTP compression.

At this point, I’m pretty sure that you understand how to correctly use the “Timer” class that I defined a few lines above. Therefore, it’s time to leap forward and set up a similar example, but this time the database rows will be fetched and sent to the client using HTTP compression.

Go ahead and read the following section.



 
 
>>> More PHP Articles          >>> More By Alejandro Gervasio
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PHP ARTICLES

- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: