|
LazyDataObject's single-augmentation resolution takes advantage of existing cache, but if it is not present it will not populate it - and hence multiple accesses to the same augmentation always incur it being calculated. This can be improved by two-stage materialization, where we cache the first accessed augmentation and fully resolve augmentations when another augmentation is accessed. With this schema, repeated requests to the same augmentation will reuse a cached instance. This will slighty penalize two-augmentation cases, but will benefit three-and-more cases, as the next augmentations will already be resolved.
An alternative is to force full resolution even for single augments, because the single-entry caching does not provide negative response cache.
|