首頁 > 後端開發 > php教程 > 與黑火的增壓應用程序的深入演練

與黑火的增壓應用程序的深入演練

Jennifer Aniston
發布: 2025-02-16 10:53:09
原創
852 人瀏覽過

blackfire.io:深入研究更快的PHP應用程序的性能分析

>沒有人喜歡緩慢,笨拙的應用程序,尤其是在處理快速擴展的數據庫和數百萬日常請求時。 分析提供了一個解決方案,提供了對程序資源消耗(時間和內存)的見解。這允許識別和解決性能瓶頸。 存在許多分析工具,每種工具都採用不同的方法。

An In-depth Walkthrough of Supercharging Apps with Blackfire

>兩種主要分析方法是採樣和儀器。採樣定期捕獲呼叫堆棧或內存的快照,最小化的性能,但可能丟失了細節。相反,儀器將分析指令直接插入代碼(手動或自動在字節碼級別上),提供精確的詳細信息,但具有更大的性能開銷。

BlackFire可以通過Chrome擴展或命令行接口訪問,很容易集成到包括Homestead在內的各種環境中。該教程展示了Blackfire在改進的設置中構建更快的應用程序中的用途。

密鑰功能:

零影響儀器:與傳統介紹者不同,黑火不會減慢您的應用程序。

> 通過Chrome擴展名或命令行工具。
  • 寬兼容性:與眾多雲提供商和虛擬機,包括宅基地的無縫集成。
  • 模塊化體系結構:>包括一個探針(PHP擴展),代理(服務器端守護程序),companion(Chrome Extension),客戶端(CLI)和基於Web的接口。
  • 連續測試:
  • 主動績效管理而沒有代碼更改。
  • 詳細的可視化:
  • 圖形表示有效瓶頸分析的執行流和性能指標。
  • 入門:

    >通過vagrant ssh訪問您的流浪框後,創建一個Blackfire帳戶(如果您還沒有一個帳戶)。 從Blackfire配置文件設置中檢索您的憑據(客戶端和服務器)。 使用以下憑據更新您的homestead.yaml>文件(位於Vagrant Box的根目錄中)

    blackfire:
        - id: "Server Id here"
          token: "Server token here"
          client-id: "Client Id here"
          client-token: "Client token here"
    登入後複製

    黑火體系結構:

    黑火包括五個核心組件:

      >
    • >探針: php擴展工具儀器和收集性能數據(Linux和MacOS)。 >
    • 代理:
    • 服務器端守護程序匯總和將配置文件信息傳輸到Blackfire。
    • 伴侶:
    • >基於瀏覽器的分析的Google Chrome擴展名。
    • 客戶端:
    • 同伴的命令行等效。 >
    • Web接口:
    • 一個基於Web的儀表板,用於可視化和比較配置文件數據。 >
    • (探針,代理和客戶端已預先安裝在Homestead改進中。)

    基本術語:

    參考資料:比較的基線性能測量。

      獨家時間:
    • >執行功能所花費的時間,不包括外部呼叫。
    • 包含時間:
    • >總執行時間,包括外部呼叫。
    • 熱路徑:
    • 分析過程中應用程序中最活躍的部分。 >
    • 分析php腳本:
    • >
    >讓我們介紹一個涉及數據庫交互的腳本。 為了進行現實的結果,我們將使用Faker生成虛擬數據,避免在我們的主要分析中包括Faker的開銷。

    1。虛擬數據生成(userproviderjson.php):

    >使用

    運行此腳本。這會創建

    <?php
    require_once('vendor/autoload.php');
    
    $num = isset($_GET['num']) ? $_GET['num'] : 1000;
    $data = [];
    
    $faker = Faker\Factory::create();
    
    if(!file_exists('data')) {
        mkdir('data');
    }
    
    for ($i = 0; $i < $num; $i++) {
        $data[] = ['name' => $faker->name, 'email' => $faker->email, 'city' => $faker->city,];
    }
    
    file_put_contents('data/users.json', json_encode($data));
    
    echo 'JSON file generated.';
    登入後複製
    2。數據庫設置:

    php UserProviderJSON.php data/users.json創建一個具有適當列的MySQL數據庫(

    )和表(

    )。

    3。主腳本(Benchmark-before.php):

    blackfire_tutorial sample_users

    >通過其URL訪問此腳本以填充數據庫。 >

    4。初始分析:

    <?php
    $db = new PDO('mysql:host=localhost;dbname=blackfire_tutorial;charset=utf8', 'homestead', 'secret');
    
    function SaveCustomers($db) {
        $users = json_decode(file_get_contents('data/users.json'), true);
        foreach ($users as $user) {
            $stmt = $db->prepare("INSERT INTO sample_users (name, email, city) VALUES (?, ?, ?)");
            $stmt->execute([$user['name'], $user['email'], $user['city']]);
        }
    }
    
    SaveCustomers($db);
    echo 'Users imported successfully.';
    登入後複製
    使用Blackfire Chrome擴展名,配置文件

    ,創建一個新的參考配置文件。

    >

    Blackfire Web界面提供了詳細的分析:工具欄匯總了關鍵指標,可視化執行流,具有詳細定時信息的功能列表以及各種指標(SQL查詢,內存使用等)。

    benchmark-before.php5。優化和重新封建:

    >優化腳本以減少數據庫調用(例如,使用具有多個值的單個插入語句)。 用優化的代碼創建benchmark-after.php。重新構圖,與參考配置文件進行比較。

    An In-depth Walkthrough of Supercharging Apps with Blackfire

    比較突出了績效的改進。

    命令行接口:

    >黑火的CLI(

    )允許通過終端進行分析:> blackfire

      proping http請求:
    • > blackfire curl http://your-url
    • 分析CLI腳本:
    • > blackfire run php your-script.php創建一個參考資料:
    • blackfire --new-reference curl http://your-url
    • 與參考值進行比較:
    • blackfire --reference=profile-id curl http://your-url>

    性能測試:

    blackfire(高級用戶)允許在

    >文件中創建性能測試,從而定義了各種指標的斷言。 .blackfire.yml

    結論: BlackFire.IO是優化PHP應用程序性能的強大工具。它的易用性,詳細的分析和連續的測試功能使其對於努力為高性能應用程序而進行的開發人員無價。 提供的常見問題解答進一步闡明了其功能和收益。 請記住,用您的實際服務器ID,代幣和數據庫憑據替換代碼示例中的佔位符值。 >

以上是與黑火的增壓應用程序的深入演練的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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