-
測(cè)試程序執(zhí)行時(shí)間: time test_magic.php查看全部
-
性能優(yōu)化項(xiàng)目上,php的性能問(wèn)題占整體項(xiàng)目性能問(wèn)題的比例可能不足50%,不要局限于僅優(yōu)化php性能。 php性能問(wèn)題解決方向: (1)php語(yǔ)言級(jí)的性能優(yōu)化 (2)php周邊問(wèn)題的性能優(yōu)化 (3)php語(yǔ)言自身分析、優(yōu)化查看全部
-
三個(gè)主要問(wèn)題查看全部
-
性能分析工具XhPorf: 打點(diǎn):xhprof_enable() $data = xhprof_disable();//返回性能數(shù)據(jù)查看全部
-
php周邊: linux運(yùn)行環(huán)境,文件存儲(chǔ)(硬盤(pán)),數(shù)據(jù)庫(kù),緩存(軟硬件結(jié)合:硬件--內(nèi)存,軟件--memcache,redis等基于內(nèi)存的緩存)查看全部
-
優(yōu)化點(diǎn):務(wù)必使用帶引號(hào)字符串做鍵名(這里準(zhǔn)確來(lái)說(shuō)應(yīng)該叫鍵名而不叫鍵值) 情況描述:php會(huì)將沒(méi)有引號(hào)的鍵名當(dāng)做常量,產(chǎn)生查找常量的開(kāi)銷(xiāo) 好的建議:嚴(yán)格使用帶引號(hào)作為鍵名 舉例: <?php define('key','apple');//定義常量key為apple $array = array( 'key'=>'hello world'. 'apple'=>'there is nothing' ); echo $array['key']."<br>";//執(zhí)行結(jié)果:hello world echo $array[key];//執(zhí)行結(jié)果:there is nothing.因?yàn)榇藭r(shí)key是常量,系統(tǒng)找到key常量為apple ?> 如果以上例子,注釋掉define一行,則執(zhí)行echo $array[key];將報(bào)錯(cuò)PHP Notice:use of undefined constant key - assumed 'key'查看全部
-
php語(yǔ)言級(jí)性能優(yōu)化點(diǎn):減少計(jì)算密集型業(yè)務(wù)。 PHP不適合做密集型業(yè)務(wù):大批量的日志分析、大批量數(shù)據(jù)處理、處理大數(shù)據(jù)。 php語(yǔ)言特性決定了php不適合做大數(shù)據(jù)運(yùn)算。(php的底層是c,php的運(yùn)算、處理流程都需要轉(zhuǎn)換成C來(lái)實(shí)現(xiàn),加上PHP的運(yùn)行環(huán)境等因素,其效率不如C) php適用場(chǎng)景:適合銜接Webserver與后端服務(wù)UI呈現(xiàn)查看全部
-
優(yōu)化點(diǎn):避免在循環(huán)內(nèi)做運(yùn)算 情況描述:循環(huán)內(nèi)的計(jì)算式將會(huì)被重復(fù)計(jì)算查看全部
-
(5)優(yōu)化點(diǎn):合理使用內(nèi)存,使用unset()及時(shí)釋放不適用的內(nèi)存 情況描述:php有內(nèi)存回收機(jī)制保底,但也請(qǐng)小心使用內(nèi)存 好的建議:利用unset()及時(shí)釋放不使用的內(nèi)存(注:unset出現(xiàn)注銷(xiāo)不掉的情況,可百度) (6)優(yōu)化點(diǎn):盡量少使用正則表達(dá)式,利用字符串處理函數(shù),實(shí)現(xiàn)相同的邏輯 情況描述:正則表達(dá)式的回溯開(kāi)銷(xiāo)較大,優(yōu)化正則表達(dá)式需要技術(shù)活 好的建議:利用字符串處理函數(shù),實(shí)現(xiàn)相同的邏輯查看全部
-
1、使用php擴(kuò)展vld可以查看Opcode。 2、命令php -dvld.active=1 -dvld.excute=0 test.php中active=1表明用vld擴(kuò)展,execute-0只想查看Opcode,并不想執(zhí)行。 3、在開(kāi)發(fā)中盡量少用@錯(cuò)誤抑制符??梢允褂胻ry throw來(lái)拋出異常查看全部
-
優(yōu)化點(diǎn):少用php魔法函數(shù)。 在實(shí)際處理中,若php魔法函數(shù)處理起來(lái)可以比較簡(jiǎn)便時(shí),需做抉擇。 在linux中,使用命令: time php test.php 可以查看執(zhí)行test.php耗時(shí)時(shí)間,主要關(guān)注user的時(shí)間。查看全部
-
php內(nèi)置函數(shù)之間依然存在性能差異,所以需要多了解各個(gè)函數(shù)的時(shí)間復(fù)雜度查看全部
-
php代碼運(yùn)行流程:zend引擎逐行掃描.php文件轉(zhuǎn)碼解析成自己能識(shí)別的格式,再解析成opcodes(最終執(zhí)行的機(jī)器碼),執(zhí)行,輸出. PHP緩存多使用opcode緩存,可以減少編譯解析,提高效率加快速度。 php內(nèi)置函數(shù)會(huì)節(jié)省掃描轉(zhuǎn)碼的時(shí)間,生成的opcode體積也會(huì)小,執(zhí)行也快,所以內(nèi)置函數(shù)是比自己寫(xiě)的代碼運(yùn)行的速度要快的。查看全部
-
vim -0 fileone.php filetwo.php 分屏打開(kāi)兩個(gè)文件查看全部
-
PHP語(yǔ)言級(jí)性能優(yōu)化:多使用PHP內(nèi)置變量、常量、函數(shù)查看全部
舉報(bào)
0/150
提交
取消