Analyze Performance with Pipeline Profiler

Use the Pipeline Profiler to tune the performance of scripts and pipelines during development and testing. The Pipeline Profiler collects and aggregates pipeline run times for each node and script in a pipeline. You must trigger the pipeline in the storefront so that the Pipeline Profiler can analyze its performance. You can use this information to identify problem areas of code.

We recommend that you use the Pipeline Profiler during both development and load testing. The performance of a pipeline depends on the tasks it's intended to accomplish. As a general rule, a pipeline shouldn't take more than three seconds to execute when it includes non-cached components and no more than 250 milliseconds when it includes cached components. These guidelines assume that there might be additional performance costs to constructing a page in addition to the pipeline, for example, executing JavaScript or retrieving rich content, such as flash content. Generally, you can expect that performance load testing might also be required to judge the performance of a page on a live site. The Pipeline Profiler is a useful tool for examining pipelines during this phase of testing.

Note: We recommend that you use the Pipeline Profiler on production to find performance bottlenecks, but only for about 15 minutes.
Important: When you activate the Pipeline Profiler from Business Manager, it is activated only for the application server that is serving that Business Manager session. A user logged in to a Business Manager session served by a different application server can't see the activated Pipeline Profiler. The Pipeline Profiler collects data only for pipelines processed by the application server where it was activated.

Refer also to Use Code Profiler for information about analyzing run-time performance.

  1. Open the storefront for the site containing the pipeline you want to examine.
  2. Select Administration > Operations > Pipeline Profiler.
  3. On the Pipeline Profiler page, click to activate the profile.
    If you have not opened the storefront, the site name does not appear in the Browse Captured Data section of the page. At least one site must appear here for data to be collected.

    The icon changes to and the profiler starts to capture data.

  4. In the storefront, trigger the pipelines or scripts you want to test. We recommend that you trigger the scripts several times to allow for meaningful averages in performance statistics.
    Your performance times might vary depending on whether a template is cached, site traffic volume, or for other reasons. We recommend that you trigger a pipeline multiple times for a good average. We also recommend that you use the Pipeline Profiler during load testing to understand the effect of traffic on pipeline performance.

    If a script is triggered, you see the data on the Pipeline Profiler page.

  5. To deactivate the Pipeline Profiler, click . Deactivating the profiler prevents additional data from being collected and can make the data easier to interpret.
  6. To examine the captured data for scripts on the Pipeline Profiler page, click Script Data.
    The Script Data page displays the results of the performance profiling of script processing.
    • Own Time: Time spent within the function (time spent within functions called by that function is not included).

    • Total Time: Time spent within all other function calls.

    • Average Own Time: Average time for one call of the function.

    • Average Total Time: Average time for all other function calls.

  7. To examine pipeline performance, click the site name in the Browse Captured Data section of the page. This page makes it easy to see if a node or script is called frequently and is therefore a good candidate for optimization.

    The Profiler - Pipeline Performance page opens.

    To sort results by Start Node Name, Hits, Total Time, Average Time, Minimum Time, or Maximum Time, click any of the column names.

  8. To view detailed performance information for a pipeline, click the pipeline name. This page is useful for determining whether a template, script, or node is costing the most time.
  9. On the Pipeline Performance Detail page:
    1. To sort results by Start Node Name, Pipelet Node ID, Interaction Node ID, Hits, Total Time, Average Time, Minimum Time, or Maximum Time, click any of the column names.
    2. To see how templates and included templates perform, click any template name.