1. 程式人生 > >五十個小技巧提高PHP執行效率(一)

五十個小技巧提高PHP執行效率(一)

雙引號 超時 而不是 也會 per 遠程 設置 作用 我們

在項目開發過程中,經常遇到了一些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輸出多個字符串或變量的函數,使用”.”連接效率要比”,”連接執行效率低。

五十個小技巧提高PHP執行效率(一)