ホームページ >バックエンド開発 >PHPチュートリアル >Blackfireを使用したスーパーチャージアプリの詳細なウォークスルー
blackfire.io:より速いPHPアプリケーションのためにパフォーマンスプロファイリングに深く掘り下げます
特に急速に拡大するデータベースや何百万もの毎日のリクエストに対処する場合、ゆっくりと扱いにくいアプリケーションを享受する人はいません。 プロファイリングはソリューションを提供し、プログラムのリソース消費(時間とメモリ)に関する洞察を提供します。これにより、パフォーマンスボトルネックの識別と解像度が可能になります。 多数のプロファイリングツールが存在し、それぞれが異なる方法論を採用しています。
2つの主要なプロファイリングアプローチは、サンプリングと計装です。サンプリングは定期的にコールスタックまたはメモリのスナップショットをキャプチャし、パフォーマンスに最小限に及ぼすが、詳細が欠落している可能性があります。逆に、計装はプロファイリング手順をコードに直接挿入し(バイトコードレベルで手動または自動的に自動的に)、正確な詳細を提供しますが、パフォーマンスオーバーヘッドが大きくなります。
Chrome拡張機能またはコマンドラインインターフェイスを介してアクセス可能であるBlackFireは、Homesteadを含むさまざまな環境に簡単に統合できます。このチュートリアルでは、ホームステッドの改善されたセットアップ内でより速いアプリケーションの構築におけるBlackFireの使用を示しています。
主要な機能:
ゼロインパクトインストゥルメンテーション:
vagrant ssh
でVagrantボックスにアクセスした後、BlackFireアカウントを作成します(まだ持っていない場合)。 BlackFireプロファイル設定から資格情報(クライアントとサーバー)を取得します。 これらの資格情報を使用して、homestead.yaml
ファイル(Vagrant Boxのルートディレクトリにある)を更新します。
<code class="language-yaml">blackfire: - id: "Server Id here" token: "Server token here" client-id: "Client Id here" client-token: "Client token here"</code>
ブラックファイアアーキテクチャ:
BlackFireは、5つのコアコンポーネントで構成されています
リファレンスプロファイル:比較のためのベースラインパフォーマンス測定。
排他的時間:外部呼び出しを除く関数の実行に費やされた時間。
が作成されます 2。データベースのセットアップ:
適切な列を使用してMySQLデータベース(
)とテーブル()を作成します。
3。メインスクリプト(Benchmark-before.php):<code class="language-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.';</code>
php UserProviderJSON.php
data/users.json
データベースを入力するためにURLを介してこのスクリプトにアクセスしてください。
4。初期プロファイリング:
BlackFire Chrome Extension、プロファイルを使用し、新しい参照プロファイルを作成します。 blackfire_tutorial
sample_users
5。最適化と再拡張:
データベース呼び出しを削減するためにスクリプトを最適化します(たとえば、複数の値を持つ単一の挿入ステートメントを使用して)。 最適化されたコードを使用してbenchmark-after.php
を作成します。参照プロファイルとの比較、
比較では、パフォーマンスの改善が強調されています
コマンドラインインターフェイス:
BlackFireのCLI(
blackfire
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アプリケーションのパフォーマンスを最適化するための強力なツールです。使いやすさ、詳細な分析、継続的なテスト機能により、開発者が高性能アプリケーションを目指して努力しているため、非常に貴重です。 提供されたFAQは、その能力と利点をさらに明確にします。 コードの例のプレースホルダーの値を実際のサーバーID、トークン、およびデータベース資格情報に置き換えることを忘れないでください。
以上がBlackfireを使用したスーパーチャージアプリの詳細なウォークスルーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。