If you're looking to run the profiler on a simple GET request, you don't need to user cURL at all. Simply run:
sail profile https://example.org
You can learn more about profiling with Sail.
Many performance problems will show up outside of simple GET requests. For example, you'll notice the increased page load time only for logged in users, or on POST requests with a specific payload, or other more complex scenarios.
For this reason, Sail ships with a wrapper function around the
This allows you to pass POST data, additional HTTP headers and more. Note that
you will have to have
curl already installed and configured on your system.
sail profile curl -X POST -d "param1=value1¶m2=value2" \ -H "Content-Type: application/x-www-form-urlencoded" \ https://example.org
This will perform a POST request, with the specified Content-Type header and POST data. Sail will additionally append its own profiling headers to make sure that profiling data is gathered and stored.
After the request is complete, the profile data will be downloaded from your production host to your local working copy, and opened in the Sail profile browser. For help navigating the profile browser read this.
You can invoke the Sail profiler from your browser. You'll just need to either
X-Sail-Profile header, or the
SAIL_PROFILE request variable
(in the query string, or POST data). The value of these should be set to the
secret profile key of your Sail application. This can be obtained from:
sail profile key
After the request has finished, you will see an
X-Sail-Profile entry in the
HTTP response headers. It will contain the path to the saved profiling data,
This is the path to the profiling data on your production server. To download it to your local working copy, use:
sail profile download /var/www/profiles/xhprof.U41e60
download command will place the profiling data file to your
directory with the current date and time. You can the open the file with:
sail profile .profiles/filename.json
If you're looking for a Chrome/Chromium extension to modify request headers, try ModHeader.
When the performance profiler is invoked, it will store profiling data into the /var/www/profiles directory on the production server. When the Sail CLI downloads this data to a local working copy, it will delete the production profile file.
However, if you do not download these files, they will continue to exist on the production server, consuming valuable disk space.
This is especially important if you use the ModHeader or equivalent extensions, which unless disabled, will continue to gather profiling data on every request to your site made from your browser.
To remove any profiling files left behind, you can run:
sail ssh rm -r /var/www/profiles/*
Locally-stored profiles will consume disk space too, you can delete them with:
cd /path/to/your/sail/project rm -rf .profiles
If you're experiencing trouble or have any questions about profiling or WordPress performance in general, visit our getting help section.