PHP autoload與include效能比較
#file:SimpleClass.php
class SimpleClass {
public function __construct() {
echo get_time() . "\r\n";
}
}
#file:php_include.php
for($i = 0;$i < $loop;$i++) {
include_once "SimpleClass.php";
new SimpleClass();
}
當$loop值為1時,指令碼耗時約0.00018906593322754秒,當$loop為1000時,指令碼耗時約0.076701879501343秒。
如果我們用autoload實現呢?
#file:php_autoload.php
function __autoload($class_name) {
include_once $class_name . '.php';
}
for($i = 0;$i < $loop;$i++) {
new SimpleClass();
}
在這段程式碼中,我定義了__autoload函式,幾乎一樣的指令碼,當$loop為1時,耗時0.0002131462097168秒,而當$loop為1000時,耗時僅為前面程式碼的1/7,0.012391805648804秒。
但請注意看SimpleClass的程式碼,其中輸出了一行字串,如果去掉這行輸出後再比較,會是什麼樣的結果呢?
在$loop同為1000的情況下,前者耗時0.057836055755615秒,而使用了autoload後,僅僅0.00199294090271秒!效率相差近30倍!
從上面的測試可以看出,當檔案僅僅被include一次,autoload會消耗稍微多一點的時間,但如果在檔案被反覆include的情況下,使用autoload則能大大提高系統效能。
至於是否要使用autoload來解放程式設計師,這就仁者見仁,智者見智了。在我看來,條件允許的前提下,犧牲這一點效能(某些情況下,甚至可能是提升效能)更為便捷的開發,是值得的。
相關文章
- PHP file_get_contents 與 curl 效能比較PHP
- JavaScript 與 Java、PHP 的比較JavaScriptPHP
- Java JIT與AOT效能比較 - foojayJava
- PHP 5 與 PHP 7 的效能對比PHP
- PHP比較字串PHP字串
- PostgreSQL、Redis與Memcached的效能比較 - CYBERTECSQLRedis
- WCF與ASP.NET Core效能比較ASP.NET
- 比較forward動作指令和include動作指令Forward
- PHP物件的比較PHP物件
- MySQL中MyISAM引擎與InnoDB引擎效能比較MySql
- Wicket、Grails與JSF/seam, tapestry效能比較AIJS
- JAVA IO效能比較Java
- 批量更新效能比較
- [php]require&require_once&include&include_once的用法與區別PHPUI
- 2017 非標準 PHP 框架效能測試比較PHP框架
- 用PHP連mysql和oracle資料庫效能比較(轉)PHPMySqlOracle資料庫
- Apache與Nginx的優缺點、效能比較,到底選擇哪個比較好?ApacheNginx
- Caddy 與 Nginx的基準效能比較 - tjllNginx
- Node.js與Io.js的效能比較Node.js
- json解析效能比較(gson與jackson)JSON
- php型別比較表PHP型別
- PHP 7 vs HHVM 比較PHP
- PHP容易出錯之二:PHP中的數字與字串比較PHP字串
- NATS訊息傳遞與REST效能比較 | VinsguruREST
- PHP autoload 機制詳解PHP
- PHP autoload機制詳解PHP
- #include與#include區別
- PHP中的比較運算子PHP
- 國外主流PHP框架比較PHP框架
- Java中List集合效能比較Java
- 排序演算法效能比較排序演算法
- python 批量resize效能比較Python
- JavaScript 字串連線效能比較JavaScript字串
- 效能比較工具runStats_pkg
- php--include 、requirePHPUI
- ABAP的include關鍵字,Java的import, C的include和C4C ABSL 的import比較JavaImport
- MRAM與常用計算機記憶體的效能比較計算機記憶體
- Apache Pulsar 與 Kafka 效能比較:延遲性(測試方法)ApacheKafka