Performance Tuning
Use these best practices to enhance the latency, throughput, and resource efficiency of your flows while minimizing downtime and risk.
Use an appropriate logging level
Logging tracks various system events and requires a certain amount of system resources. More verbose logging provides additional information, but it also consumes more system resources, which impacts the flow’s overall performance.
DaVinci supports multiple logging levels:
-
Error: Gathers basic information about the flow start and any errors encountered. This is the default.
-
None: Performs no logging.
-
Info: Gathers information about every node that runs.
-
Debug: Gathers detailed information about every node that runs.
You should set flow logging to Error unless you’re actively attempting to diagnose an issue, and you should set flow logging back to Error as soon as you’re done.
You can update the log level by opening the flow and clicking More options ( ) > Flow Settings, then clicking the Logging tab.
Minimize the number of nodes
The number of nodes that run in an execution impacts the flow execution time. You should take steps to minimize the number of nodes that run:
-
Divide larger flows into subflows when possible.
-
Remove any unnecessary nodes from the flow.
-
Skip nodes that aren’t needed in a given execution.
Avoid unhandled execution paths
If a flow takes a path that’s not handled by existing nodes, it can result in flow timeouts. For example, if a flow contains a function connector to compare two values and branches based on which value is larger, but doesn’t contain any nodes to handle the scenario where the values are equal, it can time out.
You should verify that error cases are handled as soon as they occur. Ensure that all execution paths for connectors are explicitly defined, and all success and failure paths are handled.
Minimize the payload size
Any data that’s used during the flow requires computational resources, which slows the flow. Remove any unnecessary references to large data, including variables, images, and the output from custom functions.