Page cache and screen subscription
The runtime screen asks the server only for the values it shows. Pages you leave stay in memory for a while, so going back to them is instant and their values are already current. When memory runs low, the oldest pages are dropped.
Which values a screen receives
- The open page receives the values of its signals. When you change page, only the difference is requested; signals used on both pages, such as a menu bar, keep flowing.
- A popup receives its values while it is open.
- A signal list receives the values of the visible rows only.
- A browser tab in the background stops receiving values after about 2 seconds and catches up when it comes back.
Pages kept in memory
A page you leave stays in memory and keeps receiving its values, including alarm and command states. Its scripts, timers and blinking pause while it is hidden. When you return, the page appears at once with current values.
Memory use is checked every 30 seconds and on every page change. As it grows, pages are dropped in steps:
| Memory use | What happens (defaults) |
|---|---|
| Below Timeout threshold (90 %) | All pages stay |
| From 90 % | Pages not shown for Hidden page timeout (120 minutes) are dropped |
| From Recent-pages threshold (95 %) | Only the 5 most recent pages stay ready; up to 20 older ones keep only their definition and are rebuilt on return |
| From Active-page-only threshold (98 %) | Only the open page stays ready; 5 others keep their definition |
When the hidden pages together receive more than Hidden page live tag limit (20,000) signals, the page hidden longest stops receiving values; on return its values are briefly old.
The same page opened with other parameters is kept as a separate page. A change of the page, the language, the theme or the user's rights drops the kept copy.
The Cache setting of a page
In the page properties, Cache sets how a page is kept:
| Cache | Behavior |
|---|---|
| Automatic | Follows memory use (default) |
| Never (drop when hidden) | Dropped as soon as it is hidden, for example a form whose half-filled values must not be kept |
| Always in memory | Not dropped after the timeout; still dropped at the two highest thresholds |
Project settings
Click an empty part of the page; Runtime › Page cache under the project settings holds the limits. Reset to default returns to the defaults.
| Setting | Default | Range |
|---|---|---|
| Timeout threshold | 90 % | 50–99 %, below the recent-pages threshold |
| Recent-pages threshold | 95 % | 50–99 %, between the other two |
| Active-page-only threshold | 98 % | 50–99 %, above the recent-pages threshold |
| Hidden page timeout | 120 min | 1 or more |
| Hot page count | 5 | 1 or more |
| Warm page count | 20 | 1 or more |
| Warm count (high pressure) | 5 | 1 or more |
| Hysteresis | 3 points | 0 or more; a step is relaxed only this far below its threshold |
| Hidden page live tag limit | 20,000 | 0 or more; 0 stops all hidden pages |
| Protected frequent pages | 5 | 0 or more; the most opened pages are kept until the highest threshold |
| Definition cache | 32 MB | 1–4,096 MB |
Good to know
- On a computer that reports no memory use, up to 20 pages are kept.
- A project with very many fast-changing signals uses less processor time with a lower Hidden page live tag limit.