首頁 > 後端開發 > php教程 > php級級別的性能優化

php級級別的性能優化

Joseph Gordon-Levitt
發布: 2025-02-08 08:59:10
原創
827 人瀏覽過

blackfire:在您的宅基地改進的應用程序中的精確定位和固定性能瓶頸

>

PHP-level Performance Optimization with Blackfire

>鍵洞察:

BlackFire是一個有力的工具,用於識別和解決應用程序中的性能瓶頸,尤其是使用Homestead改進的應用程序。
    了解Blackfire的圖(參考輪廓,獨家時間,包容時間,熱路徑)對於確定性能排水至關重要 - 無論是過度的內存使用情況,CPU時間還是整體活動。
  • >
  • 本文展示了Blackfire在優化多圖庫博客方面的應用程序。 它突出了瓶頸的識別(例如,PDOExecute)和實施解決方案(例如分頁)以提高性能。 在整個應用程序的生命週期中,對黑火進行連續的性能測試至關重要。將這些測試集成到您的CI/CD管道中(Blackfire Premium Plan提供的功能)可顯著提高效率。
  • (本文是建立示例多圖庫博客應用程序的系列的一部分,以進行性能基準和優化。在此處訪問存儲庫。
  • >這篇文章是基於先前對黑火的介紹,證明了其在識別和解決績效問題方面的實際應用。 我們將使用它來分析我們的樣本項目,針對立即改進的區域。 如果您使用的是改進的宅基地(建議進行),則應該已經設置了黑火。 不需要以前的黑火知識。
理解黑火指標:

在開始之前,讓我們定義Blackfire性能圖中使用的關鍵術語:

>

參考資料:您應用程序的初始性能基線。將隨後的概況與該基線進行比較以衡量改進。

獨家時間:僅在特定函數/方法中花費的時間,不包括在其函數中所花費的時間。

    包容性時間:
  • >執行函數所花費的總時間,包括在其所有稱為函數上花費的時間。 >
  • 熱路徑:
  • 分析過程中應用程序中最活躍的部分,通常指示資源消耗高的領域(內存或CPU)。
  • 設置Blackfire:
  • 創建一個Blackfire帳戶。 您的帳戶頁面提供了配置所需的令牌和ID。 該文件在底部包含佔位符:

>不按下這些行,並用您的帳戶詳細信息替換佔位符值。 >

  1. >安裝黑火鍍鉻擴展。此擴展主要用於手動分析,這在大多數情況下都是常見的。 可以使用其他集成(請參閱此處的完整列表)。
  2. >
用黑火優化

:一個案例研究>

>我們將基準為主頁 - 任何網站的關鍵頁面。在這裡加載時間緩慢直接影響用戶體驗和跳出率。雖然可以測試其他頁面(例如,圖像上傳),但通常優先考慮讀取性能。

我們的初始應用程序按年齡按負載和分類所有畫廊。 要配置文件,打開主頁,單擊“黑火擴展”按鈕,然後選擇“配置文件!”。

>

初始配置文件結果:

>消耗了包含時間的100%(深色粉紅色部分),表明它是主要的瓶頸。 雖然其他方法可能顯示出更大的淺粉紅色條(包括時間),但這些方法代表其依賴功能的累積時間。 深色粉紅色部分代表需要立即註意的功能。

切換到RAM模式表明,Twig渲染消耗了RAM的大部分(約40MB)。鑑於大量數據呈現。 PDOExecute>

熱路徑(厚邊界)清楚地突出了瓶頸。 密集的節點(花費時間的節點)也可能表明問題,即使不是熱路徑的一部分。 PHP-level Performance Optimization with Blackfire >分析表明,

>和

(高RAM使用)是由在主頁上加載所有畫廊引起的。解決方案:實施分頁。

PDOExecute實現分頁:unserialize

> 常數

,將其設置為諸如12的值。
  1. 修改畫廊獲取過程以使用分頁:> PER_PAGE HomeController

  2. >將javascript添加到家庭視圖中,以進行懶惰加載:

    >

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar
登入後複製
>為懶惰加載畫廊添加新方法:
性能比較:
$galleries = $this->em->getRepository(Gallery::class)->findBy([], ['createdAt' => 'DESC'], self::PER_PAGE);
登入後複製
    實施分頁後,
  1. 重新運行探查器會產生重大改進:> HomeController
{% block javascripts %}
    {{ parent() }}

    <🎜>
{% endblock %}
登入後複製

>記憶使用率減少了十倍,並且加載幾乎是瞬時的。 新的瓶頸是開發環境的結果。切換到生產模式進一步提高了性能:DebugClass

結論: >該應用程序的性能大大提高,頁面加載時間降至58ms。 進一步的優化是最小的。 強烈建議使用Blackfire的常規性能測試至關重要,並且將其集成到您的CI/CD管道中(可與Blackfire的Premium Plan一起使用)。 PHP性能優化的

經常詢問問題(FAQ):

>

提供的FAQ部分在很大程度上保持不變,因為它提供了與PHP性能優化相關的有價值的信息。 它準確地涵蓋了監視工具,常見問題,優化技術,可伸縮性和最佳實踐等主題。

以上是php級級別的性能優化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板