溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在ThinkPHP3.1項(xiàng)目中實(shí)現(xiàn)一個(gè)G方法

發(fā)布時(shí)間:2020-12-17 15:46:23 來源:億速云 閱讀:157 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹怎么在ThinkPHP3.1項(xiàng)目中實(shí)現(xiàn)一個(gè)G方法,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

長期以來ThinkPHP都是需要通過debug_start、debug_end方法甚至Debug類才能完成那些調(diào)試的功能,而在ThinkPHP3.1版本中,這些復(fù)雜的功能被一個(gè)簡單的G方法取代了,這不可不謂是一次華麗升級。

G方法的作用包括標(biāo)記位置和區(qū)間統(tǒng)計(jì)兩個(gè)功能,下面來看下具體用法:

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)記過的位置,如果這個(gè)時(shí)候end位置還沒被標(biāo)記過,則會(huì)自動(dòng)把當(dāng)前位置標(biāo)記為end標(biāo)簽,輸出的結(jié)果類似于:

0.0056s

默認(rèn)的統(tǒng)計(jì)精度是小數(shù)點(diǎn)后4位,如果覺得這個(gè)統(tǒng)計(jì)精度不夠,還可以設(shè)置例如:

G('begin','end',6).'s';

可能的輸出會(huì)變成:

0.005587s

3.內(nèi)存開銷統(tǒng)計(jì)

如果你的環(huán)境支持內(nèi)存占用統(tǒng)計(jì)的話,還可以使用G方法進(jìn)行區(qū)間內(nèi)存開銷統(tǒng)計(jì)(單位為kb),例如:

echo G('begin','end','m').'kb';

第三個(gè)參數(shù)使用m表示進(jìn)行內(nèi)存開銷統(tǒng)計(jì),輸出的結(jié)果可能是:

625kb

同樣,如果end標(biāo)簽沒有被標(biāo)記的話,會(huì)自動(dòng)把當(dāng)前位置先標(biāo)記為end標(biāo)簽
如果環(huán)境不支持內(nèi)存統(tǒng)計(jì),則該參數(shù)無效,仍然會(huì)進(jìn)行區(qū)間運(yùn)行時(shí)間統(tǒng)計(jì)。

關(guān)于怎么在ThinkPHP3.1項(xiàng)目中實(shí)現(xiàn)一個(gè)G方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI