PHP大量常量應集中使用APC定義

| Comments

用xdebug跟蹤程序性能時,發現一個定義了約七百個常量的文件,include_once()時消耗約六十毫秒的時間。事實上define()的效率比較低,如果需要定義大量常量,使用APC擴展提供的apc_define_constants()效果會好得多。

下面是對這個文件改造前後效率跟蹤結果的對比:

define()方案(ms) apc_define_constants()方案(ms)
啟動Web服務和PHP,第一次運行 58 4
不重啟Web服務和PHP,第二次運行 65 1
不重啟Web服務和PHP,第三次運行 66 1

由此可見,apc_define_constants()不但在初次調用時效能就超過define(),而且由於APC自身的緩存功能,在後續調用時效率會有進一步的提高,而define()基本沒有變化。

以下是apc_define_constants()的代碼示例:

1
2
3
4
5
6
7
8
9
10
<?php
if(!apc_load_constants('my_constants')) {
    $constants = array(
        'ONE'   => 1,
        'TWO'   => 2,
        'THREE' => 3,
    );
    apc_define_constants('my_constants', $constants);
}
?>

Posted via UltraBlog.vim.

Comments