Because PHP 5 includes a new object model, more new features, and faster processing speed, especially the speed of processing object-oriented code. Although the speed of object-oriented code in PHP 4 is relatively average, in The speed of object-oriented code in PHP5.
【Test environment】
- CPU: Intel Pentium4 2.66GHz
- Memory: 1GB
- Disk: 73GB/SCSI
- OS: FreeBSD 4.11
- Web: Apache 1.3.37
Test tool: ab (http_load can also be used)
Noun RPS: Requests per second ( Number of requests per second)
Test tool: ab (http_load can also be used)
Noun RPS: Requests per second (per second Number of requests)
[PHP 4.4.2 test results]
[Function]
function signin(){
echo "test";
}
signin();
?>
echo "test";
}
signin();
?>
Test results: The result of ab -n 10000 -c 50 is 1047.23/rps
[Class]
Not instantiated Class
class User{
function signin(){
echo "test";
}
}
User::signin();
?>
function signin(){
echo "test";
}
}
User::signin();
?>
Test results: The result of ab -n 10000 -c 50 is 1034.98/rps
Instantiated class
class User{
function signin(){
echo "test";
}
}
$user=new User();
$user->signin();
?>
function signin(){
echo "test";
}
}
$user=new User();
$user->signin();
?>
Test results: The result of ab -n 10000 -c 50 is 1006.14/rps
Class inheritance
class AUser{
function signin(){}
}
claāss User extends Auser{
function signin(){
echo "test";
}
}
$user=new User();
$user->signin();
?>
function signin(){}
}
claāss User extends Auser{
function signin(){
echo "test";
}
}
$user=new User();
$user->signin();
?>
Test result: The result of ab -n 10000 -c 50 is 992.95/rps
【 PHP 5.2.1 test results】
[Function]
function signin(){
echo "test";
}
signin();
?>
echo "test";
}
signin();
?>
Test result: The result of ab -n 10000 -c 50 is 1176.06/rps
[Class]
Do not instantiate class
class User{
public function signin(){
echo "test";
}
}
User::signin();
?>
public function signin(){
echo "test";
}
}
User::signin();
?>
Test results: The result of ab -n 10000 -c 50 is 1197.17/rps
Instantiated class
class User{
public function signin(){
echo "test";
}
}
$user=new User();
$user->signin();
?>
public function signin(){
echo "test";
}
}
$user=new User();
$user->signin();
?>
Test results: The result of ab -n 10000 -c 50 is 1187.93/rps
Class inheritance and abstraction
abstract class AUser{
abstract function signin();
}
class User extends Auser{
public function signin(){
echo "test ";
}
}
$user=new User();
$user->signin();
?>
abstract function signin();
}
class User extends Auser{
public function signin(){
echo "test ";
}
}
$user=new User();
$user->signin();
?>
Test results: The result of ab -n 10000 -c 50 is 1128.54/rps
【Test results and analysis】
[Test result data]
Version | Function testing | Do not instantiate class | Instance class | Class inheritance | |||||||||||||||
PHP 4.4.2 | 1047.23/rps | 1034.98/rps | 1006.14/rps | 992.95/rps | |||||||||||||||
PHP 5.2.1 | 1176.06/rps | 1197.17/rps | 1187.93/rps | 1128.54/rps
|
[Result Analysis]
1. Overall Say, it is obvious that the performance of PHP5.2 is slightly higher than that of PHP4.4, so don’t doubt that the performance of PHP5.2 will be worse, it is obviously faster than PHP4
2. The parsing performance of classes in PHP4.4 is obviously slower than that of functions, especially when inheritance is used, it drops dramatically, so in PHP4.4 it is more suitable to use process-oriented and non-inherited class operations
3. The result in PHP5.2 is that the execution speed of classes is faster than that of functions. It can be seen that the engine of PHP5.2 has spent a lot of effort on object-oriented processing. At the same time, they Whether it is a function or a class, the performance is good
4. Through this test, we have every reason to upgrade PHP4 to PHP5 with little code change, and PHP5 is basically The code is compatible with PHP4, except for some special codes. In addition, it is mentioned above that PHP Group will no longer continue to maintain PHP4 after the end of this year, so upgrade early and have peace of mind.