測試php單例模式和靜態訪問,例項化訪問的效率

2022-02-28 19:28:31 字數 804 閱讀 6137

// 測試的類

class

memory

public

static

function

getname()

return self::$a

; }

public

static

function

getok()

}

echo '開始記憶體:'.memory_get_usage(), '

';

$a =memory_get_usage();

$stime=microtime(true); //

獲取程式開始執行的時間

$tmp = str_repeat('hello', 1000);

for($i=1;$i

<9999999;$i++)

echo '執行後記憶體:'.memory_get_usage(), '

';

$b =memory_get_usage();

unset($tmp

);

echo '記憶體占用:'.($b-$a)."

"; /**

*你要執行的程式

**/$etime=microtime(true);//

獲取程式執行結束的時間

$total=$etime-$stime; //

計算差值

結果:2.靜態訪問

3.單例模式

總結:從記憶體來看,差別不大;時間來看,靜態訪問最好

單例模式和靜態類的區別

1.首先明確一下,靜態成員並不是什麼程式載入時建立並初始化的,而是類載入時進行。類的載入是第一次真正用到它的時候 拿類new例項或呼叫它的靜態方法 進行的,而這個載入過程需要將 class 檔案中構成類的靜態和例項方法等類的成員的位元組碼指令一同載入到記憶體中,而後要為靜態域分配儲存空間並使用靜態塊...

由單例模式學到 靜態建構函式和靜態字段

編譯器在編譯的時候,會事先分析所需要的靜態字段,如果這些靜態字段所在的類有靜態的建構函式,則忽略靜態欄位的初始化,否則先進行靜態欄位的初始化。對類的靜態成員初始化的順序取決於在main函式中的引用順序,先引用到的先進行初始化,但如果類的靜態成員的初始化依賴於其它類的靜態成員,則會先初始化被依賴類的靜...

靜態屬性和靜態方法以及單例模式轉殖總結

靜態屬性和靜態方法以及單例模式轉殖總結 1.靜態成員包括 靜態屬性 靜態方法 2.靜態成員在類內與類外訪問 類內 self 類外 類名 函式名 3.靜態屬性與普通屬性的區別 靜態屬性每例項化一次不會被初始化 普通屬性每例項化一次就會被初始化 4.靜態方法與普通方法的區別 靜態方法必須使用靜態屬性 普...