検索
ホームページバックエンド開発PHPチュートリアルBlackfireを使用したスーパーチャージアプリの詳細なウォークスルー

blackfire.io:より速いPHPアプリケーションのためにパフォーマンスプロファイリングに深く掘り下げます

特に急速に拡大するデータベースや何百万もの毎日のリクエストに対処する場合、ゆっくりと扱いにくいアプリケーションを享受する人はいません。 プロファイリングはソリューションを提供し、プログラムのリソース消費(時間とメモリ)に関する洞察を提供します。これにより、パフォーマンスボトルネックの識別と解像度が可能になります。 多数のプロファイリングツールが存在し、それぞれが異なる方法論を採用しています。

An In-depth Walkthrough of Supercharging Apps with Blackfire

2つの主要なプロファイリングアプローチは、サンプリングと計装です。サンプリングは定期的にコールスタックまたはメモリのスナップショットをキャプチャし、パフォーマンスに最小限に及ぼすが、詳細が欠落している可能性があります。逆に、計装はプロファイリング手順をコードに直接挿入し(バイトコードレベルで手動または自動的に自動的に)、正確な詳細を提供しますが、パフォーマンスオーバーヘッドが大きくなります。

An In-depth Walkthrough of Supercharging Apps with Blackfire

blackfire.ioは離れています。 この次世代Webプロファイラーは、アプリケーションのパフォーマンスを犠牲にすることなく、自動機器を使用します。 Sensiolabs(Symfony Frameworkの作成者)によって開発されたBlackfireは、コードの変更を必要とせずに継続的なパフォーマンステストを可能にします。

Chrome拡張機能またはコマンドラインインターフェイスを介してアクセス可能であるBlackFireは、Homesteadを含むさまざまな環境に簡単に統合できます。このチュートリアルでは、ホームステッドの改善されたセットアップ内でより速いアプリケーションの構築におけるBlackFireの使用を示しています。

主要な機能:

ゼロインパクトインストゥルメンテーション:
    従来のプロファイラーとは異なり、ブラックファイアはアプリケーションを遅くしません。
  • デュアルインターフェイス:Chrome拡張子またはコマンドラインツールを介したプロファイルPHPスクリプト。
  • 幅広い互換性:ホームステッドを含む多数のクラウドプロバイダーや仮想マシンとのシームレスな統合。
  • モジュラーアーキテクチャ:
  • プローブ(PHP拡張機能)、エージェント(サーバー側デーモン)、コンパニオン(Chrome拡張機能)、クライアント(CLI)、およびWebベースのインターフェイスを含む。 継続的なテスト:
  • コードの変更なしのプロアクティブなパフォーマンス管理。
  • 詳細な視覚化:
  • 効果的なボトルネック分析のための実行フローとパフォーマンスメトリックをグラフィカルに表します。
  • 始めましょう:
  • vagrant sshでVagrantボックスにアクセスした後、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"

    ブラックファイアアーキテクチャ:

    BlackFireは、5つのコアコンポーネントで構成されています

      プローブ:
    • アプリケーションの計装とパフォーマンスデータの収集(LinuxとMacOS)。 エージェント:
    • サーバー側のデーモンの集約とプロファイル情報をBlackfireに送信します。
    • コンパニオン:ブラウザベースのプロファイリング用のGoogle Chrome拡張機能
    • クライアント:コンパニオンに相当するコマンドライン
    • Webインターフェイス:
    • プロファイルデータを視覚化および比較するためのWebベースのダッシュボード。
    • (プローブ、エージェント、クライアントは、ホームステッドの改善で事前にインストールされています。
    • 本質的な用語:

    リファレンスプロファイル:比較のためのベースラインパフォーマンス測定。

    排他的時間:外部呼び出しを除く関数の実行に費やされた時間。

      インクルーシブ時間:
    • 外部呼び出しを含む合計実行時間 ホットパス:
    • プロファイリング中のアプリケーションの最もアクティブな部分。
    • PHPスクリプトのプロファイリング:
    • データベースの相互作用を含むスクリプトをプロファイリングしましょう。 現実的な結果については、Fakerを使用してダミーデータを生成し、プライマリ分析にFakerのオーバーヘッドを含めることを回避します。
    • 1。ダミーデータ生成(userproviderjson.php):
    • このスクリプトを使用してこのスクリプトを実行します。これにより、

    が作成されます 2。データベースのセットアップ:

    適切な列を使用してMySQLデータベース(

    )とテーブル()を作成します。

    3。メインスクリプト(Benchmark-before.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.';

    php UserProviderJSON.php data/users.jsonデータベースを入力するためにURLを介してこのスクリプトにアクセスしてください。

    4。初期プロファイリング:

    BlackFire Chrome Extension、プロファイルを使用し、新しい参照プロファイルを作成します。

    blackfire_tutorialsample_users

    BlackFire Webインターフェイスは、詳細な分析を提供します。キーメトリックを要約するツールバー、コールグラフ視覚化実行フロー、詳細なタイミング情報を備えた関数リスト、およびさまざまなメトリック(SQLクエリ、メモリ使用量など)。

    5。最適化と再拡張:

    データベース呼び出しを削減するためにスクリプトを最適化します(たとえば、複数の値を持つ単一の挿入ステートメントを使用して)。 最適化されたコードを使用してbenchmark-after.phpを作成します。参照プロファイルとの比較、

    と比較してください

    An In-depth Walkthrough of Supercharging Apps with Blackfire

    比較では、パフォーマンスの改善が強調されています

    コマンドラインインターフェイス:

    BlackFireのCLI()を使用すると、ターミナルを介してプロファイリングを許可します

    blackfire

    プロファイリングhttpリクエスト:
    • blackfire curl http://your-urlCLIスクリプトのプロファイリング:
    • 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アプリケーションのパフォーマンスを最適化するための強力なツールです。使いやすさ、詳細な分析、継続的なテスト機能により、開発者が高性能アプリケーションを目指して努力しているため、非常に貴重です。 提供されたFAQは、その能力と利点をさらに明確にします。 コードの例のプレースホルダーの値を実際のサーバーID、トークン、およびデータベース資格情報に置き換えることを忘れないでください。

以上がBlackfireを使用したスーパーチャージアプリの詳細なウォークスルーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPでインターフェイスをどのように作成して使用しますか?PHPでインターフェイスをどのように作成して使用しますか?Apr 30, 2025 pm 03:40 PM

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

crypt()とpassword_hash()の違いは何ですか?crypt()とpassword_hash()の違いは何ですか?Apr 30, 2025 pm 03:39 PM

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?Apr 30, 2025 pm 03:38 PM

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

PHPの自動装置は何ですか?PHPの自動装置は何ですか?Apr 30, 2025 pm 03:37 PM

PHPでのオートローディングは、必要に応じてクラスファイルを自動的にロードし、メモリの使用を削減し、コード組織を強化することでパフォーマンスを向上させます。ベストプラクティスには、PSR-4の使用とコードを効果的に整理することが含まれます。

PHPストリームとは何ですか?PHPストリームとは何ですか?Apr 30, 2025 pm 03:36 PM

PHPストリームは、一貫したAPIを介したファイル、ネットワークソケット、圧縮形式などのリソースの処理を統合し、複雑さを抽象化し、コードの柔軟性と効率を高めます。

PHPを使用してアップロードできるファイルの最大サイズはどれくらいですか?PHPを使用してアップロードできるファイルの最大サイズはどれくらいですか?Apr 30, 2025 pm 03:35 PM

この記事では、PHPでファイルアップロードサイズの管理を管理し、2MBのデフォルト制限とPHP.ini設定を変更してそれを増やす方法に焦点を当てています。

PHPのめまいの種類とは何ですか?PHPのめまいの種類とは何ですか?Apr 30, 2025 pm 03:34 PM

この記事では、PHP 7.1で導入されたPHPのヌル可能なタイプについて説明し、変数またはパラメーターが指定されたタイプまたはnullのいずれかを可能にします。読みやすさの改善、タイプの安全性、明示的な意図などの利点を強調し、宣言する方法を説明します

unset()とlink()関数の違いは何ですか?unset()とlink()関数の違いは何ですか?Apr 30, 2025 pm 03:33 PM

この記事では、プログラミングのunset()とlink()関数の違いについて説明し、目的とユースケースに焦点を当てています。 unset()はメモリから変数を削除しますが、link()はファイルシステムからファイルを削除します。どちらもEFFECにとって重要です

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール