国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - 使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

2019-11-16 13:52cnblogs肖蝦米 PHP教程

那天校長(zhǎng)分析了關(guān)于數(shù)據(jù)庫(kù)的分析及優(yōu)化的一些方法,很好用,也體會(huì)性能作為應(yīng)用程序的重要指標(biāo),需要我們重視。今天我就就自己對(duì)XDebug使用的一些體驗(yàn)做一小段分享。XDebug也是因?yàn)樾枰怯脕?lái)生成覆蓋率分析文件才安裝的,

那天校長(zhǎng)分析了關(guān)于數(shù)據(jù)庫(kù)的分析及優(yōu)化的一些方法,很好用,也體會(huì)性能作為應(yīng)用程序的重要指標(biāo),需要我們重視。今天我就就自己對(duì)XDebug使用的一些體驗(yàn)做一小段分享。XDebug也是因?yàn)樾枰怯脕?lái)生成覆蓋率分析文件才安裝的,剛接觸不久,平時(shí)用的也不是很頻繁,但是這個(gè)的確是一個(gè)好工具,如果想要依賴它來(lái)分析程序的性能還是需要自己親手去試試。具體它有多好,請(qǐng)聽我一一道來(lái)。

一、安裝篇(XDebug和PHPUnit)

A:安裝XDebug:

Xdebug網(wǎng)下載xdebugdll文件,存放到php加載的ext目錄下(可以選擇重命名,比如php_xdebug.dll,然后打開php.ini文件,添加配置

[xdebug]

zend_extension_ts = php_xdebug.dll

xdebug.profiler_enable = on

xdebug.trace_output_dir = D:\PHPAPP\XDebug

xdebug.profiler_output_dir=D:\PHPAPP\XDebug

xdebug需要采用zend引擎加載的方式加載,所以用zend_extension_ts或是zend_extension,ts是thread_safety,目前5.3以上才支持zend_extension加載,<5.3的用zend_extension_ts加載(或者你可以查看phpinfo是否啟用了zts),然后重啟apache,查看phpinfo,就發(fā)現(xiàn)XDebug選項(xiàng)了。

使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

可以看到xdebug.profiler_enable,xdebug.profiler_output_dir,xdebug.trace_output_dir這三個(gè)是我們剛剛配置的項(xiàng),可以安裝自己的需要配置剩余項(xiàng),xdebug.profiler_enable:開啟性能分析,

開啟這個(gè)之后會(huì)在xdebug.profiler_output_dir這個(gè)目錄下生成cachegrind.out.XXX的分析文件,如果指定了xdebug.profiler_output_name這個(gè),則輸出來(lái)的文件就會(huì)是指定的名字.xxx的格式(此方法不適合分析,原因稍后說(shuō)明),

xdebug.trace_options:這個(gè)是開啟跟蹤項(xiàng),

開啟該項(xiàng)之后,會(huì)在xdebug.trace_output_dir下生產(chǎn)跟蹤文件,注意該項(xiàng)會(huì)影響運(yùn)行速度,因?yàn)樗枰涗浉欉^(guò)程中的一系列事件。

關(guān)于XDebug還有一點(diǎn)需要注意的:XDebug是調(diào)試的,也就是說(shuō)配置了XDebug那程序運(yùn)行的就是一個(gè)Debug狀態(tài),所以這時(shí)候zend_optimizer就不能用了,總不能讓程序即調(diào)試狀態(tài)又處于優(yōu)化狀態(tài)哈。

更多關(guān)于XDebug的,大家去網(wǎng)上發(fā)掘吧~~然后一起探討哈

友情提醒:對(duì)于使用集成環(huán)境的同學(xué),比如Wamp,它擁有兩個(gè)PHP.ini配置文件,一個(gè)在Apache下,一個(gè)在PHP下,Apache下是影響web的,而PHP下是影響命令行的,所以····(感謝俊哥的提醒)

B:安裝PHPUnit:

關(guān)于PHPUnit的安裝過(guò)程,網(wǎng)上也已經(jīng)很多了,之前自己為了終于安裝成功之后也小寫了篇安裝篇(http://user.qzone.qq.com/414073277/blog/1292122868),所以這里就不再贅述了,網(wǎng)上的一些安裝教程大都能完成安裝。就簡(jiǎn)單說(shuō)下過(guò)程:

PHPUnit安裝用的是pear的安裝方式,所以如果機(jī)子沒有安裝過(guò)pear包需要先安裝下,一般在php安裝的時(shí)候在其安裝目錄下都有一個(gè)go-pear.bat文件,直接執(zhí)行即可完成安裝,【這里安裝需要注意擴(kuò)展exif,這個(gè)擴(kuò)展會(huì)用到mbstring擴(kuò)展中的方法,所以mbstring的加載順序需要再exif之上。】完成pear的安裝之后就可以執(zhí)行pear,查看pear的命令參數(shù),

使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

然后依次執(zhí)行:

pear channel-discover pear.phpunit.de

pear install –alldeps phpunit/PHPUnit

需要注意的是現(xiàn)在最新版的phpunit是3.5的··但是這個(gè)只有pear的版本是1.6以上及PHP5.2.X才會(huì)安裝得到最新版·否則是安裝的是第一次的版本(不過(guò)不影響使用)。

安裝好后就可以執(zhí)行phpunit查看相關(guān)信息:

使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

可以看到有—coverage-html –coverage-clover –coverage-source這三個(gè)選項(xiàng)·就是因?yàn)樵赬Debug安裝成功之后才能用,這三個(gè)對(duì)于導(dǎo)出覆蓋率文件可是很重要的選項(xiàng)。

二、PHPUnit單元測(cè)試覆蓋率分析

單元測(cè)試,最重要的指標(biāo)之一就是覆蓋率。這點(diǎn)雖然Zend Studio上可以很清晰的看出來(lái),可是要導(dǎo)出成一分文檔就不太好使了,所以這時(shí)候XDebug就又可以幫上忙了,使用的時(shí)候也挺簡(jiǎn)單,調(diào)用命令即可:

phpunit –coverage-html D:\PHPAPP\XDebug\YouTest

這樣就會(huì)將生成的覆蓋文件(html格式的)放在D:\PHPAPP\XDebug\目錄下了,

使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

然后就可以在放置的目錄下找到一堆的html文件,運(yùn)行下index.html

使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

就可以看到這樣的圖了,英文字母很簡(jiǎn)單··意思也明了就不解釋了,說(shuō)明一點(diǎn):

測(cè)試結(jié)果說(shuō)明:一共有5種,上圖的例子出現(xiàn)了兩種。

.:代表正確

F:代表斷言錯(cuò)誤

E:代表PHP程序錯(cuò)誤或是異常

I:代表沒有實(shí)現(xiàn)的方法

S:代表是跳過(guò)的方法

生產(chǎn)的覆蓋文件說(shuō)明:

Classes:只有一個(gè)類中的所有方法都被覆蓋的時(shí)候,這個(gè)類才算是被測(cè)試完的

Functions/Methods:只有一個(gè)方法或是函數(shù)的所有有效的語(yǔ)句代碼都被執(zhí)行到了才算這個(gè)方法或是函數(shù)是被測(cè)試完的

Lines:總行數(shù)將會(huì)不飽行注釋,空行,標(biāo)簽,及類及方法的聲明。

使用phpunit –coverage-clover D:\PHPAPP\XDebug\first.xmlYouTest

生產(chǎn)的將會(huì)是一個(gè)xml格式的文件,這個(gè)格式的文件效果不明顯,沒有html格式的好,這邊的效果被我刪掉了所以么有效果圖可看,第三個(gè)覆蓋文件的參數(shù)我沒測(cè)試過(guò),大家有興趣可以試試。

三、程序執(zhí)行性能分析

XDebug除了有效的幫助分析單元測(cè)試覆蓋率之外,還可以幫組分析程序執(zhí)行的瓶頸所在,開啟分析的功能:

xdebug.profiler_enable = on

xdebug.profiler_output_dir=D:\PHPAPP\XDebug

設(shè)置上面兩項(xiàng),然后執(zhí)行你要分析的程序,就會(huì)在上面的目錄下看到cachegrind.out.XXX的文件,這個(gè)文件直接打開就是一些記錄,需要借助第三方的cachegrind查看工具才行,一個(gè)好用的工具是winCacheGrind,查看起來(lái)很方便。

使用XDebug調(diào)試及單元測(cè)試覆蓋率分析

可以看到執(zhí)行的總時(shí)間,及每個(gè)函數(shù)執(zhí)行的時(shí)間。

因?yàn)檫@個(gè)工具在打開文件的時(shí)候,只能打開cachegrind.out.*的文件,所以待分析的文件必須是這個(gè)名字的,所以為了省去重命名,這也就是為啥我說(shuō)不建議修改xdebug.profiler_output_name這個(gè)選項(xiàng)的原因。

四、XDebug庫(kù)函數(shù)

XDebug除了上述方式外,還有自己的一些函數(shù)庫(kù)提供,可以在你程序的代碼段任何地方執(zhí)行,具體的請(qǐng)看http://xdebug.org/docs/all_functions

的功能,還不止這些,因?yàn)樗倪x項(xiàng)·好大的一頁(yè),所以還是去http://xdebug.org/docs/這里看看官方的說(shuō)明。靠譜!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品yw在线观看 | 久久91av| 成人高清视频在线观看 | 亚洲高清视频在线 | 99久久精品免费看国产一区二区三区 | 成人网在线看 | 福利在线小视频 | 日韩和欧美一区二区 | 女人久久久久 | 国产亚洲一区二区三区 | 欧美成人精品 | 成人在线观看免费爱爱 | 日本福利视频 | 久久国产精品一区二区 | 久久久成人免费一区二区 | 日本三级视频 | 最新在线国产 | 97人人看 | 成人午夜在线 | 欧美日韩国产精品一区 | 亚洲综合中文 | 国产精品美女久久久久久久久久久 | 牛牛澡牛牛爽一区二区 | 欧美精品乱码久久久久久按摩 | www.日韩视频 | 国产黄色在线网站 | 在线看91| 美女视频黄的免费 | 一区二区三区四区国产 | 日韩视频精品在线 | 亚洲视频一区二区在线观看 | 国产区视频| 国产精品久久久久久久久久久久久 | 人人插| 国产一区二区三区免费播放 | 欧美一区二区三区在线 | www.一区二区 | 在线免费日韩 | 视频一区 中文字幕 | 日本一区二区免费在线观看 | 欧美日韩精品一区二区三区 |