


Does the PHP__autoload() method really affect performance?_PHP Tutorial
Introduction
Regarding PHP performance issues, the most discussed one is the __autoload() method. Many people mentioned that this method greatly affects performance. Some people also said that opcode can also affect the __autoload() method, so I did a test on these two points.
Finally, it was found that the __autoload method does not have a great impact on performance. Some netizens say that without __autoload(), the maintenance cost will be countless times higher than the performance cost (I agree).
Environment
PHP:5.3.9 ——Start in fastcgi mode
Nginx:1.1.12
eaccelerator:0.9.6.1
Screenshot:
Startup interface:
eAccelerator (in php.ini file) configuration:
File structure: (Each Test file is a file with more than 6,000 lines of code)
Test: Test with eAccelerator cache
Test code: loaded through __autoload
Picture 1
The results I got by refreshing in the browser are as follows:
Total Time:0.10401391983032
Total Time:0.10252094268799
Total Time:0.095267057418823
Total Time:0.10013008117676
Total Time:0.096842050552368
Total Time:0.097998142242432
Total Time:0.10348510742188
Total Time:0.096648931503296
Test: without __autoload()
Figure 2
Test results - by swiping the browser
Total Time:0.10309100151062
Total Time:0.10285210609436
Total Time:0.10154414176941
Total Time:0.097845792770386
Total Time:0.099545001983643
Total Time:0.10166597366333
The final result seen: there is no obvious performance degradation in the autoload method
Test: Cancel eAccelerator cache for testing
Test results in Figure 1
Total Time:0.24992394447327
Total Time:0.25681900978088
Total Time:0.25327301025391
Total Time:0.22580695152283
Total Time:0.22656512260437
Total Time:0.22530484199524
Total Time:0.23080611228943
Test results in Figure 2
Total Time:0.23054909706116
Total Time:0.22633790969849
Total Time:0.23442888259888
Total Time:0.2350070476532
Total Time:0.22897601127625
Total Time:0.23207712173462
The __autoload() method still has no obvious impact on performance.
Summary
Through the above two sets of experiments, it is concluded:
1>__autoload method has no obvious performance loss. So don't hesitate to use the __autoload method.
2>opcode has a relatively large impact on the code. It is obvious that when opcode is used, the execution speed of the PHP code is increased by nearly 2 times.
Excerpted from Chuanshan Jia

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

In this chapter, we are going to learn the following topics related to routing ?

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.

Validator can be created by adding the following two lines in the controller.
