Il s'agit d'un pur document si vous en avez besoin à l'avenir, vous pouvez le consulter à tout moment et utiliser xhprof pour l'analyse, ce qui facilite. tests de code et analyse comparative (prend en charge php7
Tutoriel recommandé : "Tutoriel php"
docker run -it -p 80:80 -v /Users/xxx/Desktop/xhprof:/data phalcon /bin/bash复制代码
Il existe de nombreux xhprof pour php7 Nous utilisons github.com/longxinH/xh... Ce projet ici.
git clone https://github.com/longxinH/xhprof.git复制代码
cd xhprof/extension/ /usr/server/php7/bin/phpize ./configure --with-php-config=/usr/server/php7/bin/php-config make && make install复制代码
Enfin, après exécution, nous devons importer ce fichier so Accédez à la configuration php.ini
Affichez le chemin du fichier php.ini
/usr/server/php7/bin/php --ini Configuration File (php.ini) Path: /usr/server/php7/etc Loaded Configuration File: /usr/server/php7/etc/php.ini Scan for additional .ini files in: /usr/server/php7/etc/php Additional .ini files parsed: (none)复制代码
Modifiez /usr/server/php7/etc/php.ini
[Xhprof] extension=xhprof.so xhprof.output_dir=/data/logs复制代码
Redémarrez php- fpm c'est Can.
pour construire un cas est brièvement mentionné
Nous intégrons le code suivant devant la logique à surveiller
\xhprof_enable(); ......$order = new OrderAdepter();$result = $order->getUserOrderByOrderNo(123); ......$xhprof_data = \xhprof_disable(); print_r($xhprof_data);复制代码
sortie :
Nous avons constaté que deux fonctions dans l'extension xhprof ont été appelées, et la signification de la valeur de sortie
ct 表示 当前这个函数调用的次数,此案例都是1次 wt 表示 函数执行时间的耗时,单位为微秒复制代码
En voyant cela, nous avons constaté que les informations que nous avons obtenues n'étaient pas très nombreuses, par exemple, nous nous soucions souvent aussi de la mémoire occupée, du processeur et d'autres indicateurs >XHPROF_FLAGS_MEMORY. Utilisation statistique de la mémoire
\xhprof_enable( XHPROF_FLAGS_MEMORY +XHPROF_FLAGS_CPU +XHPROF_FLAGS_NO_BUILTINS );复制代码
Si vous êtes intéressé, vous pouvez l'ouvrir et y jeter un œil. les éléments que nous avons analysés y sont stockés. Informations sur les objets sérialisés.
3.2 Configuration d'un service distinct pour accéder à nos résultats d'analyse
Nous nous dirigeons vers le répertoire xhprof_html dans le projet xhprof
Je crois que vous comprenez maintenant le rôle de notre run_id et de notre projet in save_runLa partie supérieure est un aperçu des indicateurs d'interface demandés, et ce qui suit est l'exécution spécifique de chaque fonction appelée.
其余后面的 % 结尾均为对应的占比
如果查看调用流程需要安装 graphviz 图形库. 这里我们推荐手动安装 graphviz 2.24.0 这个版本(亲自踩坑,2.40不支持)
yum -y install libtool-ltdl-develcd /data/graphviz-2.24.0 ./configure make make install复制代码
红色部分和黄色部分重点关心下,如果感觉只想分析某个流程, 可以点击到某个方法里面再点击【View Full Callgraph】查看图表
我们在上面使用xhprof的时候发现了强依赖, 在代码中引入了 xhprof 安装包里的几个类.
include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_lib.php'; include_once '/data/xhprof-master/xhprof_lib/utils/xhprof_runs.php';复制代码
这里我们可以使用composer包引用来实现相同功能, 这里推荐引入 pbweb/xhprof 包。
希望大家工作开心
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!