The Tideways XHProf Extension is a well-maintained fork of the XHProf code and works with either the XHProf or Tideways Drupal modules to profile page views. Results can be viewed with these modules or the native XHProf UI.

Note that the Tideways project recently split into a proprietary extension and a stand-alone fork of XHProf. DrupalVM (and this document) specifically uses the latter (the "Tideways XHProf Extension").

To use Tideways XHProf make sure tideways is in the list of installed_extras.

Note: You should only enable one code profiler at a time—e.g. when using Blackfire, disable XHProf, Tideways and XDebug.

Profiling with the XHProf Drupal Module

To enable profiling of Drupal pages using the Tideways PHP Extension, follow the directions for configuring the XHProf and the XHProf module, but choose the Tideways extension under the Profiling settings section.

Profiling with the Tideways module

Instructions for profiling with the Tideways module through the tideways.io service will be added after the following issue is resolved: Can't install latest dev release on 8.x.

For a list of available role variables, see the geerlingguy.php-tideways Ansible role's README.

Viewing results

As with the XHProf extension, you can view callgraphs (and a listing of all stored runs) using Drupal VM's own XHProf UI installation by visiting http://xhprof.drupalvm.test/ and clicking on the relevant run, then clicking the [View Full Callgraph] link.

Note that if you have overridden DrupalVM's default set of Apache vHosts, you will need to specifically add a vHost for the XHProf dashboard.