PHP高效率寫法(詳解原因) 1.儘量靜態化: 2.echo的效率高於print,因爲echo沒有返回值,print返回一個整型; 3.在循環之前設置循環的最大次數,而非在在循環中; 4.銷燬變量去釋放內存,特別是大的數組; 5.避免使用像__get, __set, __autoload等魔術方法; 6.requiere_once()比較耗資源; 7.在includes和requires中使用絕對路徑。 8.如果你需要得到腳本執行時的時間,$_SERVER['REQUSET_TIME']優於time(); 9.能用PHP內部字符串操作函數的情況下,儘量用他們,不要用正則表達式; 因爲其效率高於正則; 10.str_replace字符替換比正則替換preg_replace快,但strtr比str_replace又快1/4; 11.參數爲字符串 12.最好不用@,用@掩蓋錯誤會降低腳本運行速度; 13.$row['id']比$row[id]速度快7倍 14.在循環裏別用函數 16.在類的方法裏建立局部變量速度最快,幾乎和在方法裏調用局部變量一樣快; 17.建立一個全局變量要比局部變量要慢2倍; 18.建立一個對象屬性(類裏面的變量)例如($this->prop++)比局部變量要慢3倍; 19.建立一個未聲明的局部變量要比一個已經定義過的局部變量慢9-10倍 20.聲明一個未被任何一個函數使用過的全局變量也會使性能降低(和聲明相同數量的局部變量一樣)。 21.方法的性能和在一個類裏面定義的方法的數目沒有關係 22.在子類裏方法的性能優於在基類中; 23.只調用一個參數並且函數體爲空的函數運行花費的時間等於7-8次$localvar++運算,而一個類似的方法(類裏的函數)運行等於大約15次$localvar++運算; 24 用單引號代替雙引號來包含字符串,這樣做會更快一些。 25.當echo字符串時用逗號代替點連接符更快些。 26.Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。 28.儘量使用緩存,建議用memcached。 29.使用ip2long()和long2ip()函數把IP地址轉成整型存放進數據庫而非字符型。 30.使用checkdnsrr()通過域名存在性來確認部分email地址的有效性 31.使用mysql_*的改良函數mysqli_*; 32.試着喜歡使用三元運算符(?:); 33.是否需要PEAR 35.使用error_reporting(0)函數來預防潛在的敏感信息顯示給用戶。 36.使用 gzcompress() 和gzuncompress()對容量大的字符串進行壓縮(解壓)在存進(取出)數據庫時。 37.通過參數變量地址得引用來使一個函數有多個返回值。 38. 完全理解魔術引用和SQL注入的危險。 39.某些地方使用isset代替strlen 40.使用++$i遞增 40. 不要隨便就複製變量 41 使用選擇分支語句 42.在可以用file_get_contents替代file、fopen、feof、fgets 43.儘量的少進行文件操作,雖然PHP的文件操作效率也不低的; 44.優化Select SQL語句,在可能的情況下儘量少的進行Insert、Update操作(在update上,我被惡批過); 45.儘可能的使用PHP內部函數 46.循環內部不要聲明變量,尤其是大變量:對象 47.多維數組儘量不要循環嵌套賦值; 48.foreach效率更高,儘量用foreach代替while和for循環; 49.“用i+=1代替i=i+1。符合c/c++的習慣,效率還高”; 50.對global變量,應該用完就unset()掉; 51 並不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很多內存。 52 不要把方法細分得過多,仔細想想你真正打算重用的是哪些代碼? 53 如果在代碼中存在大量耗時的函數,你可以考慮用C擴展的方式實現它們。 54、打開apache的mod_deflate模塊,可以提高網頁的瀏覽速度。 55、數據庫連接當使用完畢時應關掉,不要用長連接。 56、split比exploade快
php 高效率 (轉)
轉自:http://my.oschina.net/pandao/blog/126991
PHP高效率寫法(詳解原因) 1.儘量靜態化: 2.echo的效率高於print,因爲echo沒有返回值,print返回一個整型; 3.在循環之前設置循環的最大次數,而非在在循環中; 4.銷燬變量去釋放內存,特別是大的數組; 5.避免使用像__get, __set, __autoload等魔術方法; 6.requiere_once()比較耗資源; 7.在includes和requires中使用絕對路徑。 8.如果你需要得到腳本執行時的時間,$_SERVER['REQUSET_TIME']優於time(); 9.能用PHP內部字符串操作函數的情況下,儘量用他們,不要用正則表達式; 因爲其效率高於正則; 10.str_replace字符替換比正則替換preg_replace快,但strtr比str_replace又快1/4; 11.參數爲字符串 12.最好不用@,用@掩蓋錯誤會降低腳本運行速度; 13.$row['id']比$row[id]速度快7倍 14.在循環裏別用函數 16.在類的方法裏建立局部變量速度最快,幾乎和在方法裏調用局部變量一樣快; 17.建立一個全局變量要比局部變量要慢2倍; 18.建立一個對象屬性(類裏面的變量)例如($this->prop++)比局部變量要慢3倍; 19.建立一個未聲明的局部變量要比一個已經定義過的局部變量慢9-10倍 20.聲明一個未被任何一個函數使用過的全局變量也會使性能降低(和聲明相同數量的局部變量一樣)。 21.方法的性能和在一個類裏面定義的方法的數目沒有關係 22.在子類裏方法的性能優於在基類中; 23.只調用一個參數並且函數體爲空的函數運行花費的時間等於7-8次$localvar++運算,而一個類似的方法(類裏的函數)運行等於大約15次$localvar++運算; 24 用單引號代替雙引號來包含字符串,這樣做會更快一些。 25.當echo字符串時用逗號代替點連接符更快些。 26.Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。 28.儘量使用緩存,建議用memcached。 29.使用ip2long()和long2ip()函數把IP地址轉成整型存放進數據庫而非字符型。 30.使用checkdnsrr()通過域名存在性來確認部分email地址的有效性 31.使用mysql_*的改良函數mysqli_*; 32.試着喜歡使用三元運算符(?:); 33.是否需要PEAR 35.使用error_reporting(0)函數來預防潛在的敏感信息顯示給用戶。 36.使用 gzcompress() 和gzuncompress()對容量大的字符串進行壓縮(解壓)在存進(取出)數據庫時。 37.通過參數變量地址得引用來使一個函數有多個返回值。 38. 完全理解魔術引用和SQL注入的危險。 39.某些地方使用isset代替strlen 40.使用++$i遞增 40. 不要隨便就複製變量 41 使用選擇分支語句 42.在可以用file_get_contents替代file、fopen、feof、fgets 43.儘量的少進行文件操作,雖然PHP的文件操作效率也不低的; 44.優化Select SQL語句,在可能的情況下儘量少的進行Insert、Update操作(在update上,我被惡批過); 45.儘可能的使用PHP內部函數 46.循環內部不要聲明變量,尤其是大變量:對象 47.多維數組儘量不要循環嵌套賦值; 48.foreach效率更高,儘量用foreach代替while和for循環; 49.“用i+=1代替i=i+1。符合c/c++的習慣,效率還高”; 50.對global變量,應該用完就unset()掉; 51 並不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很多內存。 52 不要把方法細分得過多,仔細想想你真正打算重用的是哪些代碼? 53 如果在代碼中存在大量耗時的函數,你可以考慮用C擴展的方式實現它們。 54、打開apache的mod_deflate模塊,可以提高網頁的瀏覽速度。 55、數據庫連接當使用完畢時應關掉,不要用長連接。 56、split比exploade快
PHP高效率寫法(詳解原因) 1.儘量靜態化: 2.echo的效率高於print,因爲echo沒有返回值,print返回一個整型; 3.在循環之前設置循環的最大次數,而非在在循環中; 4.銷燬變量去釋放內存,特別是大的數組; 5.避免使用像__get, __set, __autoload等魔術方法; 6.requiere_once()比較耗資源; 7.在includes和requires中使用絕對路徑。 8.如果你需要得到腳本執行時的時間,$_SERVER['REQUSET_TIME']優於time(); 9.能用PHP內部字符串操作函數的情況下,儘量用他們,不要用正則表達式; 因爲其效率高於正則; 10.str_replace字符替換比正則替換preg_replace快,但strtr比str_replace又快1/4; 11.參數爲字符串 12.最好不用@,用@掩蓋錯誤會降低腳本運行速度; 13.$row['id']比$row[id]速度快7倍 14.在循環裏別用函數 16.在類的方法裏建立局部變量速度最快,幾乎和在方法裏調用局部變量一樣快; 17.建立一個全局變量要比局部變量要慢2倍; 18.建立一個對象屬性(類裏面的變量)例如($this->prop++)比局部變量要慢3倍; 19.建立一個未聲明的局部變量要比一個已經定義過的局部變量慢9-10倍 20.聲明一個未被任何一個函數使用過的全局變量也會使性能降低(和聲明相同數量的局部變量一樣)。 21.方法的性能和在一個類裏面定義的方法的數目沒有關係 22.在子類裏方法的性能優於在基類中; 23.只調用一個參數並且函數體爲空的函數運行花費的時間等於7-8次$localvar++運算,而一個類似的方法(類裏的函數)運行等於大約15次$localvar++運算; 24 用單引號代替雙引號來包含字符串,這樣做會更快一些。 25.當echo字符串時用逗號代替點連接符更快些。 26.Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。 28.儘量使用緩存,建議用memcached。 29.使用ip2long()和long2ip()函數把IP地址轉成整型存放進數據庫而非字符型。 30.使用checkdnsrr()通過域名存在性來確認部分email地址的有效性 31.使用mysql_*的改良函數mysqli_*; 32.試着喜歡使用三元運算符(?:); 33.是否需要PEAR 35.使用error_reporting(0)函數來預防潛在的敏感信息顯示給用戶。 36.使用 gzcompress() 和gzuncompress()對容量大的字符串進行壓縮(解壓)在存進(取出)數據庫時。 37.通過參數變量地址得引用來使一個函數有多個返回值。 38. 完全理解魔術引用和SQL注入的危險。 39.某些地方使用isset代替strlen 40.使用++$i遞增 40. 不要隨便就複製變量 41 使用選擇分支語句 42.在可以用file_get_contents替代file、fopen、feof、fgets 43.儘量的少進行文件操作,雖然PHP的文件操作效率也不低的; 44.優化Select SQL語句,在可能的情況下儘量少的進行Insert、Update操作(在update上,我被惡批過); 45.儘可能的使用PHP內部函數 46.循環內部不要聲明變量,尤其是大變量:對象 47.多維數組儘量不要循環嵌套賦值; 48.foreach效率更高,儘量用foreach代替while和for循環; 49.“用i+=1代替i=i+1。符合c/c++的習慣,效率還高”; 50.對global變量,應該用完就unset()掉; 51 並不是事必面向對象(OOP),面向對象往往開銷很大,每個方法和對象調用都會消耗很多內存。 52 不要把方法細分得過多,仔細想想你真正打算重用的是哪些代碼? 53 如果在代碼中存在大量耗時的函數,你可以考慮用C擴展的方式實現它們。 54、打開apache的mod_deflate模塊,可以提高網頁的瀏覽速度。 55、數據庫連接當使用完畢時應關掉,不要用長連接。 56、split比exploade快
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.