Skip to content

XHProf is a function-level hierarchical profiler for PHP and has a simple HTML based user interface. The raw data collection component is implemented in C (as a PHP extension). The reporting/UI layer is all in PHP. It is capable of reporting function-level call counts and inclusive and exclusive wall time, CPU time and memory usage. Additionally…

License

odoucet/xhprof

 
 

Repository files navigation

This branch/clone/whatever git calls it of the official Facebook GUI does a few things:

  • It includes a header.php document you can use with PHP's auto_prepend_file directive. It sets up profiling by initilizing a few variables, and settting register_shutdown_function with the fooder. Once started profiles are done when requested (?_profile=1), or randomly. Profiled pages display a link to their profile results at the bottom of the page (this can be disabled on a black list bases for specific documents. e.g. pages generating XML, images, etc.).
  • For tips on including header.php on an nginx + php-fpm install take a look at: http://www.justincarmony.com/blog/2012/04/23/php-fpm-nginx-php_value-and-multiple-values/
  • The GUI is a bit prettier (Thanks to Graham Slater)
  • It uses a MySQL backend, the database schema is stored in xhprof_runs.php
  • There's a front end to view different runs, compare runs to the same url, etc.

Key features include:

  • Listing 25, 50 most recent runs
  • Display most expensive (cpu), longest running, or highest memory usage runs for the day
  • It introduces the concept of "Similar" URLs. Consider:
  • Highcharts is used to graph stats over requests for an easy heads up display.

Requirements:

Work that we're still doing:

  • The aggregation functionality is ignored completely
  • The code is... a mess. Deadlines do that to you, we're working on it
  • The default table schema isn't indexed all the places it needs to be
  • Easier ways to diff URLs

About

XHProf is a function-level hierarchical profiler for PHP and has a simple HTML based user interface. The raw data collection component is implemented in C (as a PHP extension). The reporting/UI layer is all in PHP. It is capable of reporting function-level call counts and inclusive and exclusive wall time, CPU time and memory usage. Additionally…

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 49.5%
  • HTML 27.6%
  • C 20.5%
  • Visual Basic .NET 1.0%
  • CSS 0.8%
  • Batchfile 0.5%
  • M4 0.1%