亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

怎么進行PHP性能優化

2020-03-22 18:45:56
字體:
來源:轉載
供稿:網友
在開發基于PHP的Webhtml' target='_blank'>應用程序時,僅僅解決問題和項目要求是不夠的。存儲,內存和CPU數量等服務器資源有助于托管的價格; 這就是開發人員在開發Web應用程序時應該考慮這些資源的原因。除此之外,應用程序必須順利運行。在Web應用程序中有數百種方法可以進行某種性能優化,下面給大家總結介紹PHP性能優化的一些方法。

1、PHP版本很重要

PHP版本7比PHP5快得多。從最初版本開始,PHP版本完全支持兩年。以下是受支持的PHP版本。

在這兩個版本之間遷移時會出現兼容問題,但優勢,尤其是性能提升,將超過開發成本和修改時間。如果您使用下面的以下版本,我建議您升級到當前版本的PHP以獲得更好的性能。

2、單引號和雙引號使用很重要

這似乎是開發人員應該關注的最后一件事,但是已經進行了大量測試來證明使用單引號,特別是在較大的循環和字符串中,比使用雙引號要快得多。在顯示字符串本身之前,雙引號字符串將首先查找其中的某些變量; 這就是為什么它比用單引號打印字符串稍微慢一些。當您考慮PHP項目的性能優化時,字符串的單引號的使用很重要。

function doubleQuotes($iterations) { doubleQuotes($iterations) {    $temp_str = "";= "";    $start_time = microtime(true);= microtime(true);    for ($x=0; $x<$iterations; $x++) {for ($x=0; $x<$iterations; $x++) {        $temp_str .= "Hello World! ";.= "Hello World! ";    }}    echo "Time for doubleQuotes(): " . (microtime(true)-$start_time) . "</br>";"Time for doubleQuotes(): " . (microtime(true)-$start_time) . "</br>";}}function singleQuotes($iterations) {function singleQuotes($iterations) {    $temp_str = '';= '';    $start_time = microtime(true);= microtime(true);    for ($x=0; $x<$iterations; $x++) {for ($x=0; $x<$iterations; $x++) {        $temp_str .= 'Hello World! ';.= 'Hello World! ';    }}    echo 'Time for singleQuotes(): ' . (microtime(true)-$start_time) . '</br>';'Time for singleQuotes(): ' . (microtime(true)-$start_time) . '</br>';}}doubleQuotes(500000);(500000);singleQuotes(500000);(500000);Time for doubleQuotes(): 0.065473079681396Time for doubleQuotes(): 0.065473079681396Time for singleQuotes(): 0.027308940887451Time for singleQuotes(): 0.027308940887451

從這個測試開始,與帶雙引號的字符串測試相比,帶單引號的字符串運行速度快兩倍以上。毫秒的差異可能看起來可以忽略不計,但這種性能提升將有助于每分鐘數百名用戶訪問的Web應用程序。因此,如果需要顯示變量的值,則只用雙引號回顯; 如果沒有,那么用單引號回顯字符串要快得多。

3、循環中計數函數的影響

循環主要用于遍歷數組; 但是如果循環的條件使用count函數來計算數組元素的數量,那么使用這個函數會產生開銷。

for ($x=0; $x<count($arr); $x++) { } ($x=0; $x<count($arr); $x++) { }$count = count($arr);= count($arr);for ($x=0; $x<$count; $x++) { }for ($x=0; $x<$count; $x++) { }

使用循環遍歷數組的最佳方法是將數組中的元素數存儲一次,然后將該變量用于循環條件。因為如果count函數用于for循環或循環,那么每次循環迭代時,程序都會重新計算數組,這會增加每次迭代中的進程數。開發人員應該在循環中使用count的唯一方法是在循環內部進行數組處理。

4、關閉或取消設置變量

查詢數據庫時,必須建立連接,一種方法是聲明連接變量。我們都知道使用或聲明的每個變量都使用內存,因此在查詢或所有查詢完成后關閉連接是一個好習慣。、

$conn = new mysqli($servername, $username, $password, $dbname);= new mysqli($servername, $username, $password, $dbname);//查詢//查詢$conn->close();->close();$myfile = fopen("sample-file.txt", "r") or die("Unable to open file!");= fopen("sample-file.txt", "r") or die("Unable to open file!");//讀取內容//讀取內容fclose($myfile);($myfile);

與打開文件類似,在讀取或寫入文件后,必須關閉處理連接的變量。即使多人訪問Web應用程序的相同請求,關閉連接也將大大節省內存使用量。

5、靜態方法或屬性使用較少的資源

類中的靜態方法在使用時不需要實例化其類。與公共方法或屬性不同,需要在訪問它之前對其實例化進行實例化,可以直接調用靜態方法。當只有一個方法的類被從其他類中調用很多時,必須將此方法聲明為靜態方法。這將減少應用程序的內存使用量,因為變量或類實例化需要內存。

6、優化SQL查詢

連接不僅會使代碼更短,而且性能提升也很重要。初學者通常對第一個表進行選擇查詢,然后根據第一個選擇查詢的結果進行另一個選擇查詢。

$query1 = mysql_query("SELECT id FROM users");= mysql_query("SELECT id FROM users");while ($row = mysql_fetch_assoc($query1)) {while ($row = mysql_fetch_assoc($query1)) {    $query2 = mysql_query("SELECT * FROM user_info WHERE user_id = {$row['id']}");= mysql_query("SELECT * FROM user_info WHERE user_id = {$row['id']}");}}

此外,具有多個數據庫查詢的HTTP請求在Web開發中是禁忌的。如果無法使用連接查詢相關數據庫表,則需要對該數據庫進行規范化。

使用SQL查詢進行性能優化的另一種方法是將索引添加到某些列。這樣,使用索引列檢索記錄將更快。盡管與常規列相比,索引需要額外的存儲空間,但對記錄具有快速檢索率是一種良好的用戶體驗。通常,需要編制索引的列是JOIN,ORDER BY,GROUP BY和WHERE子句中使用的列。

SELECT * FROM employees WHERE address LIKE '%Kansas City%'* FROM employees WHERE address LIKE '%Kansas City%'

在查詢中使用通配符肯定會使過濾結果變得更加容易,但這種查詢是Web應用程序放慢速度的主要原因之一。不是使用字符串來存儲像城市和國家這樣的重復值,而是將這些類型的字段存儲為整數并使用另一個數據庫表來存儲這些整數及其各自的字符串值。以這種方式,使用這些字段的檢索現在將需要整數而不是字符串。

SELECT id, first_name, last_name FROM employees, first_name, last_name FROM employees

如果可能,如果您不打算使用數據庫表的所有列,則只指定要使用的SELECT查詢中的哪些列而不是SELECT *。查詢返回的列越多,內存和處理能力就越大。

7、縮小CSSJavaScript

性能優化的另一種方法是縮小JS和CSS代碼; 這將使人們無法閱讀,但當我們談論生產中的Web應用程序時,代碼的可讀性不是優先事項。同時縮小代碼會減小文件的大小,從而縮短加載時間。瀏覽器可以快速解析這些文件,因為省略了注釋和空格,從而減少了忽略它的過程。當混淆代碼使其無法被人閱讀時,只需對需要保護的代碼進行模糊處理,因為此過程可能會破壞代碼。

8、使用CDN優化性能

Web應用程序通常使用Bootstrap和jQuery等庫,加載這些文件的最佳方式是通過內容交付網絡,如Cloudflare。要優化Web應用程序的性能,請利用內容交付網絡(CDN)。我們的大多數圖像,CSS或JS文件都是靜態的,因此在靠近用戶所在位置的服務器上維護內容的緩存副本是明智的。通過這種方式,數據傳播的距離更短,執行速度更快,這將減少應用程序的延遲。需要性能改進的Web應用程序必須考慮使用CDN來下載資源。CDN允許用戶從更近的源下載內容,而不是從托管整個應用程序的位置加載內容,這將極大地影響應用程序的加載時間。

9、Web應用程序流量

另一件需要考慮的事情是流量以及應用程序響應用戶請求的速度。在Web應用程序中,常見問題是流量,訪問系統的用戶數量以及服務器處理特定請求的請求和響應的能力。比如Stackify Retrace可以監控應用程序的流量。

bc.jpg

Retrace確保您的應用程序完美地滿足您的需求。Retrace支持Microsoft Azure,Amazon AWS和Google GCP,以最大限度地提高基于云的監控功能,從而確保應用程序的質量。

以上就是怎么進行PHP性能優化的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区四区视频| 日韩av一区在线| 欧美资源在线观看| 中文字幕在线视频日韩| 欧美高清在线观看| 日韩中文字幕国产精品| 精品无人区乱码1区2区3区在线| 久久99青青精品免费观看| 国产精品久久久精品| 456亚洲影院| 日韩av影视在线| 91久久精品久久国产性色也91| 久久人人爽人人爽人人片av高请| 精品五月天久久| 97精品久久久中文字幕免费| 亚洲人成亚洲人成在线观看| 欧美一级片一区| 国产视频久久久久久久| 欧美极品第一页| 国产精品爽爽爽爽爽爽在线观看| 国产精品成人免费视频| 国产精品成人av在线| 欧美日韩999| 一本一道久久a久久精品逆3p| 久久久久久亚洲精品中文字幕| 97精品一区二区视频在线观看| 亚洲在线免费视频| 97视频在线观看视频免费视频| 亚洲一品av免费观看| 青青在线视频一区二区三区| 亚洲天堂av网| 亚洲精品中文字幕女同| 国产欧美 在线欧美| 国产精品美女视频网站| 国产视频精品一区二区三区| 日韩福利在线播放| 欧美亚洲日本网站| 久久中文久久字幕| 国产精品wwwwww| 日韩久久精品电影| 国产精品女主播视频| 久久久久久久香蕉网| www.亚洲男人天堂| 国产亚洲免费的视频看| 欧美精品久久一区二区| 亚洲免费电影在线观看| 日韩hd视频在线观看| 日韩视频在线免费观看| 欧美夜福利tv在线| 国产成人在线视频| 国产成人精品999| 91啪国产在线| 欧美限制级电影在线观看| 性欧美亚洲xxxx乳在线观看| 国产在线一区二区三区| 亚洲欧洲一区二区三区在线观看| 国内精品久久久久影院 日本资源| 亚洲精品资源美女情侣酒店| 欧美激情性做爰免费视频| 久久久久免费视频| 国内精品久久久久久中文字幕| 亚洲精品国产福利| 成人精品视频99在线观看免费| 亚洲久久久久久久久久| 日韩在线不卡视频| www.日韩.com| 久久理论片午夜琪琪电影网| 4438全国成人免费| 久久久久久久久综合| 国产亚洲免费的视频看| 中文字幕免费国产精品| 国产精品中文字幕在线观看| 国产精品一区二区三区久久久| 久久久天堂国产精品女人| 日本欧美爱爱爱| 日韩激情第一页| 日韩在线观看高清| 成人欧美在线视频| 国内精品小视频| 久久亚洲精品视频| 欧美日韩一区二区免费视频| 欧美洲成人男女午夜视频| 久久精品国产亚洲精品2020| 国产精品扒开腿做爽爽爽视频| 日韩中文字幕免费视频| 精品欧美国产一区二区三区| 日韩av电影在线免费播放| 久久人人爽人人爽爽久久| 久久精品亚洲94久久精品| 在线观看欧美成人| 55夜色66夜色国产精品视频| 亚洲成人网在线观看| 国产盗摄xxxx视频xxx69| 91理论片午午论夜理片久久| 亚洲人成网站在线播| 亚洲自拍偷拍网址| 亚洲剧情一区二区| 国内精品久久久久久中文字幕| 欧美激情精品久久久久| 国产精品电影网| 九九精品视频在线观看| 久久久综合免费视频| 亚洲综合自拍一区| 中文字幕日韩专区| 国产精品永久免费在线| 国产精品成人一区二区三区吃奶| 日韩精品亚洲视频| 在线观看欧美视频| 久久综合色88| 亚洲福利视频二区| 欧美成人免费一级人片100| 欧美激情xxxx| 久久久国产91| 亚洲影院色无极综合| 国产精品久久视频| 欧美情侣性视频| 97涩涩爰在线观看亚洲| 国产精品久久久久久久久久| 一本一道久久a久久精品逆3p| 国产91精品久久久久| 92裸体在线视频网站| 久久人人爽国产| 亚洲最大中文字幕| 九九热精品视频国产| 日韩av黄色在线观看| 亚洲精品免费一区二区三区| 国产69精品久久久| 国产成人一区二区三区电影| 亚洲理论在线a中文字幕| 北条麻妃在线一区二区| 久久久免费av| 中文字幕免费精品一区| 日韩在线观看免费网站| 欧美久久精品午夜青青大伊人| 久久久999国产| 日本韩国欧美精品大片卡二| www.日韩欧美| 久久精品国产久精国产思思| 欧美日韩中文字幕在线视频| 亚洲精品美女在线| 欧美一区二区三区四区在线| 久久av中文字幕| 久久99国产精品久久久久久久久| 97超级碰在线看视频免费在线看| 欧美日韩综合视频网址| 91超碰中文字幕久久精品| 亚洲偷欧美偷国内偷| 欧美精品18videos性欧| 亚洲美腿欧美激情另类| 日韩亚洲精品电影| www高清在线视频日韩欧美| 国产一区二区美女视频| 日韩在线一区二区三区免费视频| 亚洲精品日韩激情在线电影| 成人黄色中文字幕| 亚洲美腿欧美激情另类| 欧美多人爱爱视频网站| 亚洲精品丝袜日韩| 97超视频免费观看| 青草青草久热精品视频在线观看| 亚洲美女精品成人在线视频| 精品久久久久久亚洲国产300| 精品久久久久久中文字幕大豆网| 欧美激情国产日韩精品一区18|