Maison  >  Article  >  développement back-end  >  Comment déboguer la surveillance des performances des applications des fonctions PHP avec New Relic ?

Comment déboguer la surveillance des performances des applications des fonctions PHP avec New Relic ?

WBOY
WBOYoriginal
2024-04-23 12:24:02535parcourir

New Relic est un outil APM qui aide à résoudre les problèmes de performances des fonctions PHP et comprend les fonctionnalités suivantes : Suivi des transactions : suit le cycle de vie de la demande, y compris le temps d'exécution de la fonction. Moniteur de requêtes SQL : identifiez les instructions SQL qui provoquent des requêtes lentes. Événements personnalisés : mesurez les performances d'un événement spécifique. Grâce à l'analyse, les utilisateurs peuvent identifier et résoudre les goulots d'étranglement, tels que l'optimisation des fonctions pour éviter les requêtes SQL en double.

如何用 New Relic 调试 PHP 函数的应用程序性能监控?

Comment déboguer la surveillance des performances des applications des fonctions PHP avec New Relic

New Relic est un outil populaire de surveillance des performances des applications (APM) qui vous aide à identifier et à résoudre les problèmes de performances potentiels dans les fonctions PHP. Il offre des capacités de visibilité et d'analyse approfondies, vous permettant de diagnostiquer et de résoudre rapidement les goulots d'étranglement des applications.

Installer l'extension New Relic

Pour commencer à utiliser New Relic, vous devez installer l'extension PHP. Vous pouvez utiliser le programme d'installation de Composer :

composer require newrelic/newrelic-php

Activer la surveillance des performances des applications

Après avoir installé l'extension, vous devez activer la surveillance des performances des applications. Vous pouvez le faire en ajoutant la ligne suivante à votre fichier php.ini :

newrelic.appname = "YourAppName"
newrelic.license = "YourLicenseKey"

Debug function performance

New Relic fournit de nombreuses fonctionnalités pour vous aider à déboguer les performances des fonctions. Ceux-ci incluent :

  • Suivi des transactions : Cette fonctionnalité suit l'intégralité du cycle de vie de la demande, y compris le temps nécessaire à l'exécution d'une fonction.
  • Moniteur de requêtes SQL : Cette fonctionnalité vous aide à identifier les instructions SQL qui provoquent des requêtes lentes.
  • Événements personnalisés : Vous pouvez utiliser cette fonctionnalité pour mesurer les performances d'événements spécifiques dans votre code.

Cas pratique

Prenons un exemple d'utilisation de New Relic pour déboguer une fonction lente qui provoque des problèmes de performances. Supposons que vous ayez une fonction compute_data():compute_data():

function compute_data() {
  $data = [];
  for ($i = 0; $i < 10000; $i++) {
    $data[] = $i * $i;
  }
  return $data;
}

调用此函数会导致性能问题。使用 New Relic 的交易追踪功能,您可以发现 compute_data() 函数需要很长时间才能执行。通过使用 SQL 查询监视器,您可以看到函数中的 for 循环正在执行大量不必要的 SQL 查询。

修复性能问题

一旦您识别了导致性能问题的瓶颈,您就可以采取措施解决它。在本例中,您可以通过使用缓存机制来防止重复的 SQL 查询来优化 compute_data()

function compute_data() {
  $data = [];
  if (cache_get('data')) {
    return cache_get('data');
  }
  for ($i = 0; $i < 10000; $i++) {
    $data[] = $i * $i;
  }
  cache_set('data', $data);
  return $data;
}

L'appel de cette fonction entraînera des problèmes de performances. En utilisant la fonctionnalité de traçage des transactions de New Relic, vous pouvez voir que la fonction compute_data() prend beaucoup de temps à s'exécuter. En utilisant le moniteur de requêtes SQL, vous pouvez voir que la boucle for de la fonction exécute un grand nombre de requêtes SQL inutiles. 🎜🎜🎜Résoudre les problèmes de performances🎜🎜🎜Une fois que vous avez identifié le goulot d'étranglement à l'origine des problèmes de performances, vous pouvez prendre des mesures pour le résoudre. Dans ce cas, vous pouvez optimiser la fonction compute_data() en utilisant un mécanisme de mise en cache pour éviter les requêtes SQL en double. 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn