New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compare memory consumption between FW8 and latest V10 #70
Comments
Several observations about memory consumption in Patient portal:
I don't know how FW8 version works in these aspects:
As a result there are two aspects/questions:
|
Keeping 100 items in memory is expected because the server needs to keep a reference to anything that he client has in its cache so that the server can find the right instance if the user selects something through the UI. Having 100 items available for immediate scrolling doesn't seem like too much. The navigation target being retained after navigating away is not expected and could be further investigated. |
Actually the reason of retained patient list is (at least) the application design: It might be that this behavior is not really expected since |
On the other hand
So on the client side it places the component in the slot (replaces the client side component) but on the server side it doesn't remove the previous component and it stays referenced in the children list. |
Detaching the old child happens outside |
Aha, OK. |
Right, there is no Grid anymore referenced after the navigation to another view. |
|
No wait. The problem is probably that the |
I'm afraid this means that we'll need a different way of keeping We can obviously not preserve ordering between tasks for nodes that have never been attached, so for those it's completely fine that the ordering is based on when they are attached. |
While this should be fixed anyway, I wonder if the following thing could be handled in a better manner in private void requestFlush() {
if (flushRequest == null) {
flushRequest = () -> {
flush();
flushRequest = null;
};
stateNode.runWhenAttached(ui -> ui.getInternals().getStateTree()
.beforeClientResponse(stateNode, flushRequest));
}
}
private void requestFlushUpdatedData() {
if (flushUpdatedDataRequest == null) {
flushUpdatedDataRequest = () -> {
flushUpdatedData();
flushUpdatedDataRequest = null;
};
stateNode.runWhenAttached(ui -> ui.getInternals().getStateTree()
.beforeClientResponse(stateNode, flushUpdatedDataRequest));
}
} |
Use latest Flow 'n components snapshots.
The text was updated successfully, but these errors were encountered: