"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Guide de l'analyse profonde de l'application de suralimentation en feu noir

Guide de l'analyse profonde de l'application de suralimentation en feu noir

Publié le 2025-04-14
Parcourir:727

Blackfire.io: une plongée profonde dans le profilage des performances pour les applications PHP plus rapides

Personne ne bénéficie d'applications lentes et lourdes, surtout lorsqu'il s'agit de bases de données en expansion rapide et de millions de demandes quotidiennes. Le profilage offre une solution, fournissant des informations sur la consommation de ressources d'un programme (temps et mémoire). Cela permet l'identification et la résolution des goulots d'étranglement de performance. De nombreux outils de profilage existent, chacun utilisant différentes méthodologies.

An In-depth Walkthrough of Supercharging Apps with Blackfire

Deux approches de profilage primaires sont l'échantillonnage et l'instrumentation. L'échantillonnage capture périodiquement des instantanés de la pile d'appels ou de la mémoire, un impact minimal sur les performances mais potentiellement des détails manquants. L'instrumentation, inversement, insère des instructions de profilage directement dans le code (manuellement ou automatiquement au niveau du bytecode), offrant des détails précis mais avec une plus grande surcharge de performances.

An In-depth Walkthrough of Supercharging Apps with Blackfire

Blackfire.io se sépare. Ce profileur Web de nouvelle génération utilise une instrumentation automatique sans sacrifier les performances de l'application. Développé par Sensiolabs (créateurs du cadre Symfony), BlackFire permet des tests de performances continus sans nécessiter de modifications de code.

accessible via une interface chromée ou une interface de ligne de commande, BlackFire est facilement intégré dans divers environnements, y compris Homestead. Ce tutoriel démontre l'utilisation de BlackFire dans la création d'applications plus rapides dans une configuration améliorée de propriété.

Fonctions clés:

  • Instrumentation zéro-impact: Contrairement aux profileurs traditionnels, Blackfire ne ralentit pas votre application.
  • Double interface: Profile php scripts via l'extension chrome ou l'outil de ligne de commande.
  • Compatibilité large: Intégration transparente avec de nombreux fournisseurs de cloud et machines virtuelles, y compris Homestead.
  • Architecture modulaire: comprend une sonde (extension PHP), un agent (démon côté serveur), un compagnon (extension Chrome), un client (CLI) et une interface Web.
  • Test continu: Gestion des performances proactives sans modifications de code.
  • Visualisation détaillée: représente graphiquement les flux d'exécution et les métriques de performance pour une analyse effective de goulot d'étranglement.

Commencer:

Après avoir accédé à votre boîte Vagrant via Vagrant ssh , créez un compte BlackFire (si vous n'en avez pas déjà). Récupérez vos informations d'identification (client et serveur) à partir de vos paramètres de profil de feu noir. Mettez à jour votre fichier homestead.yaml (situé dans le répertoire racine de votre boîte Vagrant) avec ces informations d'identification:

blackfire:
    - id: "Server Id here"
      token: "Server token here"
      client-id: "Client Id here"
      client-token: "Client token here"

architecture de feu noir:

Blackfire comprend cinq composants de base:

  • sonde: une extension PHP instrumentant l'application et collectionne des données de performances (Linux et macOS).
  • agent: un démon d'agrégation et de transmission côté serveur des informations à Blackfire.
  • Companion: L'extension Google Chrome pour le profilage basé sur le navigateur.
  • client: l'équivalent en ligne de commande du compagnon.
  • Interface Web: un tableau de bord basé sur le Web pour visualiser et comparer les données de profil.

(La sonde, l'agent et le client sont préinstallés dans Homestead améliorés.)

Terminologie essentielle:

  • Profil de référence: Une mesure de performance de base pour la comparaison.
  • Time exclusif: temps passé à exécuter une fonction, à l'exclusion des appels externes.
  • Temps inclusif: Temps d'exécution total, y compris les appels externes.
  • paths chauds: les parties les plus actives de votre application pendant le profilage.

Profil d'un script php:

Profitons un script impliquant des interactions de base de données. Pour des résultats réalistes, nous utiliserons Faker pour générer des données factices, en évitant d'inclure les frais généraux de Faker dans notre analyse principale.

1. Génération de données face (userProviderjson.php):

 $faker->name, 'email' => $faker->email, 'city' => $faker->city,];
}

file_put_contents('data/users.json', json_encode($data));

echo 'JSON file generated.';

Exécutez ce script en utilisant php userproviderjson.php . Cela crée data / users.json .

2. Configuration de la base de données:

Créez une base de données MySQL ( Blackfire_Tutorial ) et table ( samptampes_users ) avec des colonnes appropriées.

3. Script principal (benchmark-before.php):

prepare("INSERT INTO sample_users (name, email, city) VALUES (?, ?, ?)");
        $stmt->execute([$user['name'], $user['email'], $user['city']]);
    }
}

SaveCustomers($db);
echo 'Users imported successfully.';

Accédez à ce script via son URL pour remplir la base de données.

4. Profil initial:

à l'aide de l'extension Chrome BlackFire, profil benchmark-before.php , créant un nouveau profil de référence.

An In-depth Walkthrough of Supercharging Apps with Blackfire

L'interface Web BlackFire fournit une analyse détaillée: une barre d'outils résumant les mesures clés, un graphique d'appel visualisant le flux d'exécution, les listes de fonctions avec des informations de synchronisation détaillées et diverses mesures (requêtes SQL, utilisation de la mémoire, etc.).

5. Optimisation et reprofilage:

Optimiser le script pour réduire les appels de base de données (par exemple, en utilisant une seule instruction d'insertion avec plusieurs valeurs). Créer benchmark-after.php avec le code optimisé. Reprofile, comparant le profil de référence.

An In-depth Walkthrough of Supercharging Apps with Blackfire

La comparaison met en évidence les améliorations des performances.

Interface de ligne de commande:

CLI de Blackfire ( Blackfire ) permet le profilage via le terminal:

  • Profil des demandes http: Blackfire curl http: // your-url
  • Profil des scripts CLI: Blackfire exécuter php your-script.php
  • Création d'un profil de référence: Blackfire --new-Reference Curl http: // your-url
  • en comparant une référence: Blackfire --Reference = Profil-id curl http: // your-url

tests de performance:

BlackFire (Users Premium) permet de créer des tests de performances dans un fichier .

Conclusion:

Blackfire.io est un outil puissant pour optimiser les performances de l'application PHP. Sa facilité d'utilisation, son analyse détaillée et ses capacités de test continu le rendent inestimable pour les développeurs qui cherchent des applications très performantes. Les FAQ fournies clarifient en outre ses capacités et ses avantages. N'oubliez pas de remplacer les valeurs d'espace réservé dans des exemples de code par votre ID de serveur, vos informations d'identification de la base de données réelles.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3