Home  >  Article  >  Backend Development  >  How to install and use xhprof performance analysis tool under PHP7

How to install and use xhprof performance analysis tool under PHP7

醉折花枝作酒筹
醉折花枝作酒筹forward
2021-05-27 09:24:082326browse

This article will introduce to you how to install and use the xhprof performance analysis tool under PHP7. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

How to install and use xhprof performance analysis tool under PHP7

The xhprof version is obtained from https://github.com/longxinH/xhprof

git clone https://github.com/longxinH/xhprof

Install xhprof

cd xhprof/extension/
phpize
./configure 
make
make install

and then Add

extension=xhprof.so

to /etc/php.ini according to the situation. Execute

php -m | grep xhprof

You can see the output, indicating that the php extension is installed successfully, and then restart Apache or php-fpm

Run

You can directly run the example in the example directory in the file cloned from github

The output is as follows

Array
(
    [main()] => Array
        (
            [ct] => 1
            [wt] => 9
        )

)
---------------
Assuming you have set up the http based UI for 
XHProf at some address, you can view run at 
http://<xhprof-ui-address>/index.php?run=592567308784c&source=xhprof_foo
---------------

Then copy the ?run=592567308784c&source=xhprof_foo after index.php

Visit

xhprof_html/index.php?run=592567308784c&source=xhprof_foo

You can see the output

How to install and use xhprof performance analysis tool under PHP7

Click View Full Callgraph in the middle to see the performance analysis picture

Error reporting

failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。
//解决方案
yum install graphviz

Adapt to changes

For example, if you want to test your own project, such as performance analysis of a framework.

Copy the two files under xhprof_lib/utils/

xhprof_lib.php and xhprof_runs.php to the same directory as the entry file, and then add

// start profiling
xhprof_enable();
## at the beginning of the entry file #Add

// stop profiler
$xhprof_data = xhprof_disable();

// display raw xhprof data for the profiler run
print_r($xhprof_data);


include_once "xhprof_lib.php";
include_once "xhprof_runs.php";

// save raw data for this profiler run using default
// implementation of iXHProfRuns.
$xhprof_runs = new XHProfRuns_Default();

// save the run under a namespace "xhprof_foo"
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "---------------\n".
     "Assuming you have set up the http based UI for \n".
     "XHProf at some address, you can view run at \n".
     "http://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foo\n".
     "---------------\n";

to the end position to get the url shown above, and then visit

http://***/xhprof_html/index.php?run=*****&source=xhprof_foo

again to get the page shown below

How to install and use xhprof performance analysis tool under PHP7

View the picture

How to install and use xhprof performance analysis tool under PHP7

The red part in the picture is the part with lower performance and longer time consumption. We can check the system code according to which functions are marked in red. Optimize

Supplement

  • Function Name: method name.

  • Calls: The number of times the method has been called.

  • Calls%: The number of method calls as a percentage of the total number of method calls at the same level.

  • Incl.Wall Time (microsec): The time it takes for method execution, including the execution time of sub-methods. (Unit: microsecond)

  • IWall%: The percentage of time spent in method execution.

  • Excl. Wall Time (microsec): The time it takes to execute the method itself, excluding the execution time of sub-methods. (Unit: microsecond)

  • EWall%: The percentage of time spent executing the method itself.

  • Incl. CPU (microsecs): The CPU time spent on method execution, including the execution time of sub-methods. (Unit: microsecond)

  • ICpu%: The percentage of CPU time spent in method execution.

  • Excl. CPU (microsec): The CPU time spent executing the method itself, excluding the execution time of sub-methods. (Unit: microsecond)

  • ECPU%: The percentage of CPU time spent executing the method itself.

  • Incl.MemUse(bytes): The memory occupied by method execution, including the memory occupied by sub-method execution. (Unit: Bytes)

  • IMemUse%: The percentage of memory occupied by method execution.

  • Excl.MemUse(bytes): The memory occupied by the execution of the method itself, excluding the memory occupied by the execution of sub-methods. (Unit: Bytes)

  • EMemUse%: The percentage of memory occupied by the method itself.

  • Incl.PeakMemUse(bytes): Incl.MemUse peak value. (Unit: Bytes)

  • IPeakMemUse%: Incl.MemUse peak percentage.

  • Excl.PeakMemUse(bytes): Excl.MemUse peak value. Unit: (byte)

  • EPeakMemUse%: Excl.MemUse peak percentage.

Recommended learning:

php video tutorial

The above is the detailed content of How to install and use xhprof performance analysis tool under PHP7. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete