About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:profiling

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
development:profiling [2019/10/30 19:37] emaijaladevelopment:profiling [2021/02/16 16:09] – [XHProf / Tideways] demiankatz
Line 5: Line 5:
 ===== XHProf / Tideways ===== ===== XHProf / Tideways =====
  
-VuFind comes with built-in support for the [[http://php.net/manual/en/book.xhprof.php|XHProf]] family of profilers. [[https://github.com/tideways/php-xhprof-extension|Tideways XHProf Extension]] is a later evolution of XHProf, and it is supported in VuFind 4.0 and later (and recommended for those versions, since the original does not support recent PHP releases). VuFind 6.1 and later only support the Tideways extension.+VuFind comes with built-in support for the [[http://php.net/manual/en/book.xhprof.php|XHProf]] family of profilers. [[https://github.com/tideways/php-xhprof-extension|Tideways XHProf Extension]] is a later evolution of XHProf, and it is supported in VuFind 4.0 and later (and recommended for those versions, since the original does not support recent PHP releases). VuFind 6.1 and later only support the Tideways extension. VuFind 8.0 restores support for XHProf while also supporting Tideways, due to the revival of that project.
  
 To use one of these profilers: To use one of these profilers:
  
-  - Install the necessary PHP extension ("pecl install xhprof-beta" for XHProf, or follow the compilation instructions on the Tideways site for that product). +  - Install the necessary PHP extension ("pecl install xhprof" for XHProf, or follow the compilation instructions on the Tideways site for that product). 
-  - Install the [[https://github.com/phacility/xhprof|XHProf code from GitHub]] and make sure that xhprof_html is symlinked to somewhere in your web root, while xhprof_lib is symlinked somewhere on PHP's search path. (Note that Tideways uses the XHProf user interface, so this step is the same for both products). :!: Starting with VuFind 4.0, the putting xhprof_lib on the search path is no longer necessary.+  - Make sure that xhprof_html is symlinked to somewhere in your web root, while xhprof_lib is symlinked somewhere on PHP's search path. This directory may have been installed as part of the PECL process, but if not, you can get it from [[https://github.com/phacility/xhprof|XHProf's GitHub project]]. (Note that Tideways uses the XHProf user interface, so this step is the same for both products). :!: Starting with VuFind 4.0, the putting xhprof_lib on the search path is no longer necessary.
   - Uncomment the VUFIND_PROFILER_XHPROF setting in your $VUFIND_LOCAL_DIR/httpd-vufind.conf file, changing the value to the URL where you have set up the xhprof_html directory.   - Uncomment the VUFIND_PROFILER_XHPROF setting in your $VUFIND_LOCAL_DIR/httpd-vufind.conf file, changing the value to the URL where you have set up the xhprof_html directory.
   - Restart Apache.   - Restart Apache.
  
-If these steps have been completed successfully, you will see a link to profiler results at the bottom of every page in VuFind. Note that the output of this profile link will cause JSON or XML-based AJAX requests to fail since it will make those responses invalid. This should not matter for the purposes of testing individual pages.+If these steps have been completed successfully, you will see a link to profiler results at the bottom of every page in VuFind. Note that prior to VuFind 8.0, the output of this profile link will cause JSON or XML-based AJAX requests to fail since it will make those responses invalid. This should not matter for the purposes of testing individual pages. Starting with VuFind 8.0, non-HTML pages will provide the profiling link as an HTTP header instead of an inline link.
  
 ===== XDebug ===== ===== XDebug =====
development/profiling.txt · Last modified: 2023/11/27 18:55 by demiankatz