info window performance in 7.1
Description
Environment
test private instance
Attachments
4
- 14 Sep 2020, 01:42 PM
- 13 Sep 2020, 07:44 PM
- 13 Sep 2020, 05:55 AM
- 11 Sep 2020, 06:25 AM
Activity
Alan Lescano September 14, 2020 at 2:56 PM
Alan Lescano
September 14, 2020 at 2:56 PM
Nice catch!
Alan
Norbert Bede September 14, 2020 at 1:42 PM
Norbert Bede
September 14, 2020 at 1:42 PM
Testing 13000 products %kviet% search result approx 1600 rows, pagination is up to 500ms
see screencast.
norbert
Igor Pojzl September 14, 2020 at 12:53 PM
Igor Pojzl
September 14, 2020 at 12:53 PM
Created PR, added passing ReadOnly Parameter from InfoColum to GridField.
Heng Sin Low September 14, 2020 at 12:07 PM
Heng Sin Low
September 14, 2020 at 12:07 PM
hi @Igor Pojzl , yes, that’s not correct, it should be readonly for info window. If you have the fix for it, please create a pull request for it.
Igor Pojzl September 14, 2020 at 9:58 AM
Igor Pojzl
September 14, 2020 at 9:58 AM
Ive found that WInfoWindowListItemRenderer when getting CellComponent was causing for each cell with Table/TableDir Component to refresh its lookup in WTableDirEditor:208
. I think it should be considered as BUG, because when we have in Info Window Column selected IsReadOnly checkbox, Table Direct component should have set IsReadWrite as False.
private void init()
{
ZKUpdateUtil.setWidth(getComponent(), "200px");
getComponent().setAutocomplete(true);
getComponent().setAutodrop(true);
getComponent().addEventListener(Events.ON_BLUR, this);
if (getComponent() instanceof EditorAutoComplete) {
;
} else {
getComponent().addEventListener(Events.ON_CHANGING, this);
}
boolean zoom= false;
if (lookup != null)
{
lookup.addListDataListener(this);
lookup.setMandatory(isMandatory());
if ((lookup.getDisplayType() == DisplayType.List && Env.getContextAsInt(Env.getCtx(), "#AD_Role_ID") == 0)
|| lookup.getDisplayType() != DisplayType.List)
{
zoom= true;
}
//no need to refresh readonly lookup
if (isReadWrite())
lookup.refresh(); // <-- Refreshing for Each Cell in InfoWindow
else
refreshList();
}
Fixed
Details
Details
Assignee
Igor Pojzl
Igor PojzlReporter
Norbert Bede
Norbert BedeTested By
Norbert Bede
Components
Fix versions
Priority
Created September 11, 2020 at 6:04 AM
Updated November 1, 2020 at 4:09 PM
Resolved September 14, 2020 at 2:29 PM
Issue: Info window can be really slow on many columns and pagination
TESTED USE CASES
A. regular product info with lot custom column - approx 25 cols (slow)
B. product info simple with fewer columns. up to 10 (fast)
My test case: When I reduce product info from 25 to 5 columns, then the info window was really fast.
Also we got feedback from customer, and reproducible, pagination to the next pages are really slow.
Obeservation: SQL generated by the info window, and the query took in 0,7sec on the server, however, the info window rendered/return rows up to 3-6 sec. This depends on the result (rows returned, if less then performance is better) 4-6 sec around 600 rows.
Due small dataset we can't reproduce on test.idempiere.org. Our tests was done on our multi-tenant production installation, however, this was confirmed from another installation from michalzilincar and AlanLescano.
Alan Lescano, forum thread
I also noticed a slowness, especially when the info window has many columns (>20) and many rows returned. Decreasing the paging size and reducing columns helps a lot. I couldn't investigate much, but I found a suspicious loop that iterates through all cells (rows x columns), to format dates/amounts (localized), and that may be the cause.