APC常量定義與PHP的define比較

2021-08-27 06:42:08 字數 1313 閱讀 8476

最近在做雲平台的初步**架構時,遇到乙個常量定義速度比較的問題,故做一下比較。

php的apc擴充套件,在php手冊裡面有下面一段描述:

意思是php的define函式比較慢,在開啟了apc的php環境中,使用apc的常量定義方式比define要快很多。

apc常量定義使用的是apc_define_constants()和apc_load_constants() 這對函式。

這裡準備了兩段程式,分別測試其執行時間來看其分別:

define函式的**:

<?php  

$stime=microtime(true);

define('tmp_path', '/tmp');

// ...其他定義,共20個

echo api_mail;

echo '';

$etime=microtime(true);

echo $etime-$stime;

?>

apc的常量定義**:

<?php 

$stime=microtime(true);

if(!apc_load_constants('api'))

echo api_mail;

echo '';

$etime=microtime(true);

echo $etime-$stime;

?>

執行結果:

define函式:

0.000098943710327148

0.00010895729064941

0.00010585784912109

0.00010395050048828

…apc常量定義:

0.00010991096496582

0.000039100646972656

0.000042915344238281

0.000041961669921875

…從結果可以看出,apc常量定義在第一次執行時,花的時間和define差不多;但是在第一次執行後,後面的執行時間非常地少,只有define的三分之一。而define執行的時間,每次都很平均,並沒有太大的起伏。

從**上分析,apc常量定義是先通過apc_load_constants()函式獲取常量,當常量不存在時再執行apc_define_constants()來定義常量。這樣的好處是一次性將常量匯入到php執行空間內,不需要每個都define一次,所以效率更高。

注:本次測試,php環境開啟了apc快取,所以define函式的測試也是在記憶體級執行。

php定義常量

宣告常量和宣告變數的方式不同,在php中是通過使用define 函式和const來定義常量的。常量的命名與變數相似,也要遵循php識別符號的命名規則。常量預設為大小寫敏感,按照慣例常量識別符號總是大寫的,但是不要再常量前面加上 符號。define 函式的格式如下 boolean define str...

php 常量定義

php常量定義及取值 常量在定義時賦值 不能變 不能銷毀 具有超全域性作用於 常量只能儲存標量資料 字元 整型 浮點 define hello world 變數名 hello 變數值 world echo hello 變數輸出 echo b constant hello 使用函式 constant ...

PHP中的自定義常量與類常量

1.自定義常量 常量的值只能是標量資料 boolean integer float 和 string 或 null 常量一旦被定義,就不能被重新定義或者取消定義。有兩種定義方式 define status 3 如果第三個引數設定為true,則大小寫不敏感 echo status const name...