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.
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.
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:
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:
(La sonde, l'agent et le client sont préinstallés dans Homestead améliorés.)
Terminologie essentielle:
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.
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.
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:
Blackfire curl http: // your-url
Blackfire exécuter php your-script.php
Blackfire --new-Reference Curl http: // your-url
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 .
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.
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