. XHProf can be installed as a PECL * package for use with PHP5 (Zend PHP) and is built-in to HHVM 3.3.0. * * This also supports using the Tideways profiler * , which additionally * has support for PHP7. * * @since 1.28 */ class Xhprof { /** * @var bool $enabled Whether XHProf is currently running. */ protected static $enabled; /** * Start xhprof profiler * @return bool */ public static function isEnabled() { return self::$enabled; } /** * Start xhprof profiler * @param int $flags * @param array $options * @throws Exception */ public static function enable( $flags = 0, $options = [] ) { if ( self::isEnabled() ) { throw new Exception( 'Profiling is already enabled.' ); } self::$enabled = true; if ( function_exists( 'xhprof_enable' ) ) { xhprof_enable( $flags, $options ); } elseif ( function_exists( 'tideways_enable' ) ) { tideways_enable( $flags, $options ); } else { throw new Exception( "Neither xhprof nor tideways are installed" ); } } /** * Stop xhprof profiler * * @return array|null xhprof data from the run, or null if xhprof was not running. */ public static function disable() { if ( self::isEnabled() ) { self::$enabled = false; if ( function_exists( 'xhprof_disable' ) ) { return xhprof_disable(); } else { // tideways return tideways_disable(); } } } }