|
長(zhǎng)期以來(lái)Thinkphp都是需要通過(guò)debug_start、debug_end方法甚至Debug類才能完成那些調(diào)試的功能,而在Thinkphp3.1版本中,這些復(fù)雜的功能被一個(gè)簡(jiǎn)單的G方法取代了,這不可不謂是一次華麗升級(jí)。
G方法的作用包括標(biāo)記位置和區(qū)間統(tǒng)計(jì)兩個(gè)功能,下面來(lái)看下具體用法:
1.標(biāo)記位置
G方法的第一個(gè)用法就是標(biāo)記位置,例如:
G('begin');
表示把當(dāng)前位置標(biāo)記為begin標(biāo)簽,并且記錄當(dāng)前位置的執(zhí)行時(shí)間,如果環(huán)境支持的話,還能記錄內(nèi)存占用情況。可以在任何位置調(diào)用G方法標(biāo)記。
2.運(yùn)行時(shí)間統(tǒng)計(jì)
標(biāo)記位置后,我們就可以再次調(diào)用G方法進(jìn)行區(qū)間統(tǒng)計(jì)了,例如:
G('begin'); // ...其他代碼段G('end'); // ...也許這里還有其他代碼 // 進(jìn)行統(tǒng)計(jì)區(qū)間echo G('begin','end').'s';
G('begin','end') 表示統(tǒng)計(jì)begin位置到end位置的執(zhí)行時(shí)間(單位是秒),begin必須是一個(gè)已經(jīng)標(biāo)記過(guò)的位置,如果這個(gè)時(shí)候end位置還沒(méi)被標(biāo)記過(guò),則會(huì)自動(dòng)把當(dāng)前位置標(biāo)記為end標(biāo)簽,輸出的結(jié)果類似于:
0.0056s
默認(rèn)的統(tǒng)計(jì)精度是小數(shù)點(diǎn)后4位,如果覺(jué)得這個(gè)統(tǒng)計(jì)精度不夠,還可以設(shè)置例如:
G('begin','end',6).'s';
可能的輸出會(huì)變成:
0.005587s
3.內(nèi)存開(kāi)銷統(tǒng)計(jì)
如果你的環(huán)境支持內(nèi)存占用統(tǒng)計(jì)的話,還可以使用G方法進(jìn)行區(qū)間內(nèi)存開(kāi)銷統(tǒng)計(jì)(單位為kb),例如:
echo G('begin','end','m').'kb';
第三個(gè)參數(shù)使用m表示進(jìn)行內(nèi)存開(kāi)銷統(tǒng)計(jì),輸出的結(jié)果可能是:
625kb
同樣,如果end標(biāo)簽沒(méi)有被標(biāo)記的話,會(huì)自動(dòng)把當(dāng)前位置先標(biāo)記為end標(biāo)簽。
如果環(huán)境不支持內(nèi)存統(tǒng)計(jì),則該參數(shù)無(wú)效,仍然會(huì)進(jìn)行區(qū)間運(yùn)行時(shí)間統(tǒng)計(jì)。
忘掉debug_start、debug_end吧,大道至簡(jiǎn),你懂的~
php技術(shù):ThinkPHP3.1新特性之G方法的使用,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。