---
summary: Discover key performance optimization strategies for OutSystems 11 (O11), focusing on efficient logic and system monitoring.
guid: faee48f5-9b43-40a6-906d-837feef414df
locale: en-us
app_type: traditional web apps, mobile apps, reactive web apps
platform-version: o11
figma:
tags: performance optimization, system monitoring, efficient logic, code best practices, application troubleshooting
audience:
- full stack developers
- frontend developers
- backend developers
outsystems-tools:
- service studio
- service center
coverage-type:
- evaluate
---
# Best practices for logic performance optimization
Optimizing application performance requires developers to adhere to high coding standards. The following best practices apply universally to any type of application.
## Use service center reports
### Description
Use Service Center reports to identify performance bottlenecks in applications and guide optimization efforts.
### Solution
Analyze slow web screens, database queries, or services in Service Center's Analytics section. Focus efforts on resolving identified bottlenecks to reduce troubleshooting time.
### Key point
This is the first step in any performance optimization process.
## Avoid long-running timers and batch jobs
### Description
Avoid doing background processing all in a row. Use control tables and process data in chunks, rescheduling itself at the end of a run.
### Solution
Limit timers to a maximum of 20 minutes. If necessary, reschedule the timer and store process states to resume without issues. Use checkpoints and partial commits to ensure timers can safely restart without data loss.
### Key point
Shorter timers reduce the risk of data inconsistency and system strain.
## Simplify screen preparations
Applies only to Traditional Web apps.
### Description
Streamline screen preparation actions to speed up loading times.
### Solution
Avoid overly complex queries, pre-process data during write operations, and minimize redundant permission checks. Executing heavy operations during screen preparation can slow page rendering.
### Key point
Faster page loads improve user experience, so minimize database queries and avoid write operations during screen prep unless necessary.
## Use Site Properties efficiently
### Description
Don't use Site Properties as frequently changing logic variables.
### Solution
Treat Site Properties as constants. For frequently updated values, use a database table and back-office functionality to manage them instead.
### Key point
Constant changes to Site Properties can increase database overhead and result in errors like deadlocks under heavy loads.
## Limit session variables
Applies only to Traditional Web apps.
### Description
Minimize the use of large session variables.
### Solution
Reduce session data by storing user-specific information in the database, limiting the need to load large session variables on each request.
### Key point
Large session variables increase load times, especially with AJAX requests, impacting application performance.
## Avoid isolated Aggregates
### Description
Don’t create isolated actions solely to execute Aggregates.
### Solution
Isolating Aggregates prevents the platform from optimizing field retrieval, leading to unnecessary database load.
### Key point
Fetching the entire entity from the database occurs even if not all fields are used.
## Avoid queries inside ‘If’ branches in preparation
Applies only to Traditional Web apps.
### Description
Prevent the unnecessary inclusion of query data in the viewstate.
### Solution
Use local screen variables instead of placing conditional queries inside "if" branches, especially when using data outside the branch.
### Key point
Conditional queries increase the size of the page’s viewstate, slowing down the user experience.