For set analysis and cache memory, Will set analysis functions pull answers from cache when Section Access is used BUT NOT to filter data. Reviewing a dashboard with many set analysis functions and high concurrent usage at peak. Performance bottoms out at that time. Questioning whether set analysis functions are utilizing high amounts memory which ends up being only relative to a single concurrent user and once over max then as cached sets are dropped for concurrent document usage this is causing performance fall off.
Section access is performed during the opening of an application and does any data-reduction or not. After this it didn't impact anything.
Expressions will be cached after they are calculated the first time and there is enough RAM available. Here it's important that each unique expression-strings will be cached separate and that the following expressions are logical the same and return the same results but they are different from a caching point of view:
If expressions needs any kind of conditions set analysis should be preferred as the mostly fastest method with the least impact on the cache compared to other methods like if-conditions.
If your application is quite slow you should look if there are aggr- and/or interrecord-functions and/or if-loops in use and replace them with other logics. Also the datamodel could have a big effect and should be developed in the direction of a star-scheme or even a big flat-table.