A plugin that allows full profiling of plugins in PHP 5.3 to 5.6. Full profiling is not possible in PHP 7.2+ and mostly limit to just a few limited functions due to changes in PHP 7. If you cannot use PHP 5.6 we do not recommend the use of this plugin.
For only $10 the WP Performance Profiler helps you to:
- Measure the performance of individual plugins (Not in PHP 7+)
- Measure page load times
- Spot trends in aggregate data
- Detect performance issues
- Optimise your site
What is it?
A plugin by interconnect/it developed to measure the performance of your WordPress site. If you use PHP 5.6 you can track the performance of your plugins. In PHP 7.2+, unfortunately, the plugin is limited in its capabilities due to a change in PHP with the scope of the core function that the plugin relies upon to measure the performance of plugins.
Why use it?
If you are a developer looking to monitor the performance of your site, identify the plugins that are causing slow database queries and identify the exact bottleneck causing problems, then this plugin is for you. The WP Performance Profiler is optimised to work with WordPress with minimal setup and is focused on being lightweight, allowing you to spot trends in aggregate data.
In most cases, running your site against PHP 5.6 is required to carry out accurate debugging of slow plugins. If your server is unable to switch to this version of PHP then we do not recommend using this plugin.
How is this tool different?
Tools like the xdebug profiler are great, but they add a lot of overhead and are focused on individual requests, and require setup at the server level, which you may not have access to. The uncluttered user interface of the WP Performance Profiler, is easily navigable, allowing you to get straight to the root of the problem and detect where performance is slow on your site.
There are two ways to install the plugin. We recommend you install this as a ‘must-use’ plugin, which gives the best results and gives you much more detailed and accurate information.
To install the WP Performance Profiler as a must-use plugin (recommended):
- If you don’t already have a folder called `mu-plugins` inside your wp-content directory, create one
- Copy the contents of the zip file into `wp-content/mu-plugins`
- Login to the admin panel of your site, this will create the required database tables
- Go to Profiler > Settings in the admin area and configure the level of logging you want
- For multisite networks, repeat steps 3 and 4 for every site in the network
To install the WP Performance Profiler as a regular plugin:
Repeat the steps above, but copy the files into `wp-content/plugins` instead of `wp-content/mu-plugins`.
Server and minimum PHP Requirements
Please note that the WP Performance Profiler is not compatible with HHVM or PHP 7.0 or PHP 7.1. The minimum PHP version required to run the plugin is 5.3. The Profiler works with PHP 5.3 to 5.6 and on PHP 7.2+ web servers. However, in PHP 7.2+ the plugin cannot record the time taken for other plugins.
To uninstall the plugin, assuming it’s been installed as a must-use plugin:
- Go to Profiler > Maintenance and click uninstall, this will delete all custom tables and set a flag in the options table to not run the plugin any more
- Delete `load-wp-performance-profiler.php` and `wp-performance-profiler` from the `mu-plugins` directory
- Delete the database tables beginning `wp_profiler_` (prefix depending on setup)
- Once the plugin is activated, navigate to Profiler in your Dashboard.
- To filter the data, enter the required information in the boxes below the tabs and click ‘filter’.
- For a list of installed plugins on the site and general plugin stats, click the ‘plugins’ tab.
- To view in-depth information on a specific request, select it from the ‘requests’ tab and then click the ‘in depth’ tab. Please note, not all requests have detailed information available due to the level of logging.
- Settings can be changed via the ‘settings’ tab.
Frequently Asked Questions
What benefit does this have over server level profiling?
Tools like the xdebug profiler are great, but they add a lot of overhead and are focused on individual requests, and also require setup at the server level, which you may not have access to. The WP Performance Profiler is optimised to work with WordPress with minimal setup. It’s also focused on being lightweight and can help to spot trends in aggregate data.
Why does this plugin need to be installed as a must-use plugin instead of a regular one?
Although it’s possible to run this plugin as a normal one instead of a must-use one, it would capture less data, and the data it does capture would be less accurate. This is because must-use plugins are loaded much earlier than normal ones, allowing the profiler to monitor the load time of all plugins, and not just ones loaded after it (which could be none).
Why does it create its own database tables instead of using the core WordPress tables?
As the plugin captures and stores a lot of information, it creates its own tables for best performance. This also has the benefit of not cluttering up the core WordPress tables and makes it much easier for the plugin to clean up after itself.
Why is this not logging exactly 10% of requests?
The logging is based on probability, not absolute metrics. Although it would be possible to make the number of requests logged more accurate, this would add overhead to every single request, not just the ones being logged. Therefore, in the interest of performance, it will only log the request if the probability of a random number is less than or equal to your target. This will mean that sometimes you get slightly more or less than the target number of requests.
What’s the difference between basic and advanced logging?
Basic logging is very lightweight and will only capture the URL, total duration, amount of memory used, number of database queries, template used and the type of request. Advanced logging will also capture the execution time of each plugin down to the function level, as well as all the database queries.
Basic logging is great to leave running in the background to get an idea of the overall performance of your site and spot trends, such as slow performing requests, templates or types of requests. Advanced logging is then great for drilling down in more detail to find out how the time is spent on those slow requests. In the requests table, advanced requests will have the link to view details in the actions column.
Can this be used on a production website?
Yes, although this plugin is primarily meant as a developer tool – so is most beneficial running on your local development environment and staging servers – it can be used in production. We’ve tried to minimise the overhead as much as possible, but any tool like this will inevitably carry an overhead in terms of performance and also database size.
If you are going to run it in a production environment, it’s recommended to set the advanced logging level to a very low number, and the basic level to a low-medium number. With a large amount of traffic, this will still capture a lot of data with minimal overhead. If you run it with higher values (especially for the advanced logging), you’ll need to periodically purge the database in the maintenance tab.
How do I report a problem?
Email us at the address you receive when you purchase the Profiler. Please note, support is only provided during core UK working hours, but we always endeavour to respond to you as soon as possible.
Are there any compatibility issues I should be aware of?
Unfortunately, the WP Performance Profiler is not compatible with HHVM or PHP 7.0 and 7.1 (due to changes in these large updates of PHP) but is partly compatible with PHP 7.2 and above. The minimum PHP version required to run the plugin is 5.3 and we have tested the plugin up to 5.6. We have tested in 7.2 and 7.3 but can confirm that the plugin, although working to a degree which could be useful in some cases, is not fully functional.
What do I do if I’m really stuck?
You can email us at the address you received when purchasing the Profiler. Put ‘Performance Profiler’ in the subject and include the following information:
- What browser and version is this problem occurring with?
- What WordPress version are you using?
- What version of Performance Profiler are you using?
To find out in Chrome and Firefox: it’s ctrl + shift + j
To find out in Internet Explorer: it’s F12 and click on ‘Script’ then ‘Console’)
- What are the steps you used to produce this problem?