Openbravo Issue Tracking System - Retail Modules | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0051291 | Retail Modules | Web POS | public | 2023-01-05 13:02 | 2023-01-05 13:02 |
Reporter | AugustoMauch | ||||
Assigned To | Triage Platform Base | ||||
Priority | normal | Severity | major | Reproducibility | have not tried |
Status | new | Resolution | open | ||
Platform | OS | 5 | OS Version | ||
Product Version | |||||
Target Version | Fixed in Version | ||||
Merge Request Status | |||||
Review Assigned To | |||||
OBNetwork customer | |||||
Support ticket | |||||
Regression level | |||||
Regression date | |||||
Regression introduced in release | |||||
Regression introduced by commit | |||||
Triggers an Emergency Pack | No | ||||
Summary | 0051291: Improving the granularity of PersistenceChangeListenerManager will have a positive performance impact | ||||
Description | We use the PersistenceChangeListenerManager to react to certain changes in the application state. For instance, configurations of ConfigurationSets use it to reevaluate the configurations when a given state model is updated, and UserActions do something similar to reevaluate the executability rules when relevant models are updated. Right now PersistenceChangeListenerManager allows to subscribe to whole models (Ticket, UI, etc). This can be problematic because most of the times someone gets subscribed to that listener, it is only interested on a slice of the model (for instance many executability rules listen to changes in any UI property when the only relevant one for them is UI.currentWindow). Improving the granularity of the slice of the state being listened to will have a positive performance impact because fewer executability rules and configurations will be reevaluated when a UI state action is executed (and we are executing those VERY often). The price to pay will be to compare the value of the listened state slices before and after each action is executed. We should compare the new cost with the saved cost, but it is probably worth it. Proposed API: - Maintain listening to the whole model when needed: addListenedModels(['Ticket']) - Add a new more granular listener: addListenedModelProperty(['UI.currentWindow']) | ||||
Steps To Reproduce | - | ||||
Proposed Solution | |||||
Additional Information | |||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | |||||
Issue History | |||||
Date Modified | Username | Field | Change | ||
2023-01-05 13:02 | AugustoMauch | New Issue | |||
2023-01-05 13:02 | AugustoMauch | Assigned To | => Triage Platform Base | ||
2023-01-05 13:02 | AugustoMauch | Triggers an Emergency Pack | => No |
There are no notes attached to this issue. |