View this page in the latest version of Appian. Performance Details for Design Objects Share Share via LinkedIn Reddit Email Copy Link Print On This Page This page explains how to access performance details for expressions used in different objects and how to interpret those details. Performance analysis Appian provides tools to analyze the performance of expressions within interface objects, expression rules, record type interfaces, web APIs, and decisions. To optimize your expressions, you can view two types of performance details: Performance view: Live performance information. Performance trends: Historical performance trends. Tip: To learn more about the performance of the queries to your record types, see the Query Performance tab of the Monitor view. Accessing performance information The availability of performance view and performance trends varies by object type: Object Performance view (live) Performance trends (historical) Interface Click Performance Details . From the performance view, click Performance Trends. Click Settings > Performance Trends. Expression Rule In the Ad Hoc Test pane, click TEST RULE, then click View Performance in the Test Output section. Click Settings > Performance Trends. Record Type Go to the Performance page of the record type. N/A Web API After clicking TEST REQUEST, click Settings > Performance View. N/A Decisions N/A Click Settings > Performance Trends. You can also view performance trends for all interfaces or expression rules in the environment from the Rule Performance page of the Admin Console. Performance view When you open the performance view, Appian re-evaluates your expression and displays live performance details. The performance view provides insights into the total evaluation time and the individual contributions of each part of your expression to help you identify and address performance bottlenecks. Initially, the view displays measurements for the top-level rule, function, or element. For example, in a record type, the performance metrics for the record list are displayed by default. Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to close From the performance view, you can: Click charts or linked metrics to drill down to a particular function, rule, or parameter. View the blue bar to see how the current part of the expression contributes to the overall evaluation time. Review the common performance metrics available in each object. Note: Interfaces display common performance metrics in the Evaluation Metrics tab and provide additional performance information like performance trends, query metrics, and save metrics. Common performance metrics Although presentation varies by object, every object includes the following performance metrics. Parameters and direct children The Parameters and Direct Children section displays information about the current function, rule, or parameter. Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to close The grid displays the following columns: Column Description Name The name of the function, rule, or parameter. Click the name to drill down into the function, rule, or parameter details. Type The Type can be: Evaluation: The current function, rule, or parameter being evaluated. Save: The current function, rule, or parameter being saved. This value only appears in the Save Metrics sub-tab in an interface. Parameter: The parameter of the current function or rule. Child: The rules or functions that are part of the evaluation. Time (ms) The time (in milliseconds) spent evaluating the function, rule, or parameter. Percent The percentage of the total time spent evaluating the function, rule, or parameter. The pie chart visually displays the data described in the Percent column. Click a section of the pie chart to drill into that function, rule, or parameter. Note: For interfaces and record types, the measured time is shorter than the time you observe while waiting for the object to load. The measured time specifically captures the time spent evaluating your expression and does not include application server overhead, network transmission, or client rendering. Descendant functions and query rules The Descendant Functions and Query Rules section displays each function and query that contributed to the overall evaluation time of the current function, rule, or parameter. By default, the grid displays all the functions and queries invoked while evaluating the entire expression. When you drill down, the grid is filtered to show only those functions and rules that contributed to the evaluation time of the current function, rule, or parameter. Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to close The grid displays the following columns: Column Description Function The name of the function or query. Count Number of times the function or query was invoked while evaluating the current function, rule, or parameter. Total Time (ms) Cumulative time (in milliseconds) spent evaluating all invocations of this function or query. Percent Percent of the total time spent evaluating all invocations of this function or query. Minimum Time (ms) The shortest evaluation time (in milliseconds) of the function or query. Maximum Time (ms) The longest evaluation time (in milliseconds) of the function or query. Descendant rules The Descendant Rules section displays each interface or expression rule that contributed to the overall evaluation time of the current function, rule, or parameter. By default, the grid displays all interfaces or expression rules invoked while evaluating the entire expression. When you drill down, the grid is filtered to show only those interfaces and expression rules that contributed to the evaluation time of the current function, rule, or parameter. Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to close The grid displays the following columns: Column Description Rule The name of the interface or expression rule. Count Number of times the rule was invoked during the evaluation. Total Time (ms) Cumulative time (in milliseconds) spent evaluating all invocations of this rule. Percent Percent of the total time spent evaluating all invocations of this rule. Minimum Time (ms) The shortest evaluation time (in milliseconds) of the rule. Maximum Time (ms) The longest evaluation time (in milliseconds) of the rule. Note: Function and query evaluation times are independent, but rule evaluation times overlap. If rule!a calls rule!b, then rule!a's measured time includes the time spent evaluating rule!b. As a result, adding all the percentages from the Descendant Rules grid can produce a total greater than 100%. Interface-specific metrics Interfaces have four separate tabs in the performance view: Evaluation Metrics. Save Metrics. Query Metrics. Performance Trends. Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to close Parallel evaluation If your interface contains multiple queries, parts of the expression may evaluate in parallel. The total time the interface took to evaluate may be less than the sum of the evaluation time of each function that is called. Because of this, percentages may add up to more than 100%. When analyzing the performance of an interface that is being evaluated in parallel, the performance view will still help you identify bottlenecks by showing functions or rules that are outliers. As you make changes to the expression, however, you may not see a 1-to-1 improvement between the part you just improved and the overall evaluation time. If this occurs, review the performance view to see if there are other areas for improvement. See Parallel Evaluation of Expressions for an example. Evaluation metrics The Evaluation Metrics tab displays the most recent evaluation of your expression and includes metrics for: Parameters and Direct Children. Descendant Functions and Query Rules. Descendant Rules. Note: The Response Time in the Monitor view is a total value that includes both evaluation and save metrics. If the Evaluation Metrics response time is shorter than the Monitor view response time, check the Save Metrics tab to account for the difference. Save metrics When you change a component value, the server evaluates the expression to locate and execute the component's saveInto parameter. These metrics appear in the Save Metrics tab. Only complex saves involving expressions or rules executed within an a!save function appear here. Simple variable assignments do not appear because their performance impact is negligible. Example of a complex save that appears in the Save Metrics tab: 1 2 3 4 5 6 7 a!localVariables( local!text, a!textField( value: local!text, saveInto: a!save(local!text, upper(save!value)) ) ) Query metrics The Query Metrics tab displays a grid of record type queries run during the interface's evaluation. Tip: To see detailed information about the record type queries run throughout your applications, go to the Query Performance tab in the Monitor view. Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to close The grid displays the following columns: Column Description Query UID A unique identifier for the query. Click the link to see an expression that illustrates the record types, fields, filters, and functions used in the query. Execution Time The time (in milliseconds) that the query took to wait for resources and run. Wait Time The time (in milliseconds) the query waited for resources. Expression Rule The design object used to run the query. This column may be blank if the query was run directly from a record view or record list. Click the expression rule name to open the identified design object. Record Type The record type used in the query. Click the record type name to open the identified record type object. Component The component used to run the query. In some instances, this column may contain a function, record view, or record action, depending on how the interface or expression rule is configured. Record type-specific metrics The record type's performance view displays common performance metrics for the following record type elements: Record list. Record views. Related actions. The performance view for record views and related actions also includes information about the executed queries to help identify potential performance impacts. Executed queries The Executed Queries section displays details about the queries run during a record view or related action evaluation. Use this section to see which components generate queries and how many fields each query retrieves. This information helps you identify opportunities to improve performance, like reducing unnecessary field counts or consolidating queries. Scroll or drag to pan · ⌘+/⌘− to zoom · Esc to close The executed queries section displays the following information: Column Description Query ID A unique identifier for a query. Click the link to see the query syntax. Component The component used to run the query. This column may contain a function, record view, or record action, depending on how the interface or expression rule is configured. Field Count The number of fields included in the query. Performance trends Performance trends are available from: The settings menu in expression rules and decision objects. The performance details page in interface objects. Performance trends offer a look at how the object performed in the past. A moving window of 30 days of performance metrics are gathered and stored as end users interact with the interface or expression rule. The data in this view can help you understand how your expression is performing under real usage by showing the overall trends over time. The historical performance trends are always for the top-level expression. Performance trends do not show the historical performance of a particular function, rule, or parameter within the expression. Like the live performance details, this historical view captures only the time spent evaluating the expression. The view does not capture network transmission or client rendering time, so the values shown are always slightly less than the load time experienced by end users of your interface. The evaluation times recorded do not include the evaluation of the expression while it is tested through the interface or expression rule designers. The exception to this is when the interface or expression rule is embedded within a different expression and that expression is evaluated or tested in the interface or expression rule designers. Aggregation levels There are four aggregation levels for analyzing the historical performance of the interface. Each aggregation level displays: Evaluation Time graph: The minimum, average, and maximum time recorded across all evaluations in the selected time period, in milliseconds. Executions graph: The number of times the expression was executed in the selected time period. Executions grid: The count, minimum, average, and maximum evaluation time recorded in the selected time period, in milliseconds. The following table describes each aggregation level: Aggregation level Description Filtering Average calculation Time boundaries Minute Highest granularity. Best suited for analyzing performance changes during iterative interface and rule design. Start date, start time, end date, end time. Per-minute values. Displayed in the viewing user's time zone. Hour (default) Provides insight into how performance changes hour by hour. Start date, start time, end date, end time. Unweighted average of per-minute averages for the hour. Displayed in the viewing user's time zone. Day Analyzes performance on a daily basis. N/A Unweighted average of per-minute averages for the day. Midnight to midnight in the viewing user's time zone. Week Analyzes performance on a week-to-week basis. N/A Unweighted average of per-minute averages for the week. Sunday through Saturday in the viewing user's time zone. Related resources Interface performance best practices: Learn the best, most efficient ways to create fast interfaces. Rule Performance in the Admin Console: View performance trends for all interfaces or expression rules in the environment. Query Performance in the Monitor view: See detailed information about record type queries run throughout your applications. Feedback Was this page helpful? SHARE FEEDBACK Loading...