提高PHP執行效率,解決三大常見問題

2019-06-21 87 0 編輯:深正互聯 來源:互聯網

在項目開發過程中,經常遇到了一些PHP處理程序性能底下的情況,程序運行在centos+nginx環境,雖然這個有很多的原因如:服務器本身配置,運行環境nginx服務,php-fpm配置等等,更多有一點仍然是PHPer沒有對程序進行更好的優化。

網站建設

第一類、變量類型:

1)主要是使用未定義變量,而直接使用變量,做程序開發結束的時候,程序員都喜歡關閉debug,讓一切Notice和Warning都影藏起來,但實質上php即使關閉debug也會記錄日志,將所有的Notice和Warning信息全部寫入日志文件中,無非是一件浪費性能的事,很多phper都有這個小習慣,包括我也一樣。

2)另外在程序中應盡量注意變量的使用,如字符串最好使用單引號,而不是雙引號,畢竟雙引號還得PHP解析為單引號在執行。

3)說到這里數組中的鍵值索引一樣也需要用單引號,不要不寫引號這樣的程序執行效率極低。


第二類、函數類型:

1)SESSION變量,大家都知道調用SESSION這個全局變量,往往大家在將值放入SESSION之后,直接就往下接著寫自己的代碼了,卻忘記了SESSION變量會在頁面執行完畢之后才會將值放入SESSION中供其他頁面使用,這樣如果這個頁面執行時間過長,其他頁面也調用這個SESSION就會等待這個寫入SESSION的頁面執行完畢之后,再往后執行其他程序,但是我們的程序要的不是這樣的效果,因為我們只需要將值寫入SESSION執行之后,就已經放在SESSION中了,而不是等待頁面執行完畢,從PHP官網也能看到這個SESSION變量確實有這個問題,因此我們需要在寫入SESSION之后關閉寫入SESSION操作,加上session_write_close()函數則可以減少等待頁面加載完畢的這些無用時間。

2)file_get_contents()函數,這個函數意思是獲取遠程URL的頁面內容,但雖然這樣寫著,很多人都不會注意這樣一個問題”超時”,如果獲取不到頁面內容,程序將一直卡在這里,很多人會聯系到設置頁面超時或者在php.ini文件中去設置max_execution_time最大執行超時時間,但如果使用的是php-fpm(也就是php-cgi)將對這個參數視為無效,而需要在php-fpm配置文件中設置最大執行超時時間,最終這樣也無法起到作用,需要解決這個問題,仍然需要我們在至調用該函數的時候加上超時時間,這樣才能從根本上解決問題。


第三類、引用文件類型:

引用文件很多時間我們都習慣性的使用include ,但是這中間也隱含著一些使用技巧,如果經常使用框架開發程序的人就很熟悉,項目項目下面會有”include”字樣類型的文件夾,程序在查找包含文件的順序先是在當前工作目錄根路徑下include字樣文件夾中下查找,然后再是當前該文件所在目錄相對的include字樣文件夾中查找。也就是這個include使用不當,程序將會按照這個方式在根路徑下面依次查找,這樣同樣是一件很費解的事,所以大家應盡量將使用的文件寫在最容易查找的位置,這樣才有利于程序的執行效率。此外還有像echo輸出多個字符串或變量的函數,使用”.”連接效率要比”,”連接執行效率低。


本站文章均為深正網站建設摘自權威資料,書籍,或網絡原創文章,如有版權糾紛或者違規問題,請即刻聯系我們刪除,我們歡迎您分享,引用和轉載,但謝絕直接搬磚和抄襲!感謝...
關注深正互聯
我們猜你喜歡
七星彩头尾