roke
  • roke
  • Newbie Topic Starter
2021-11-04T16:21:54Z
Hi,

I have a few questions regarding de loading time of the iGrid when the AutoFilterManager is attached. I’m using version 10.0.24 for both iGrid and AutoFilterManager (AFM).

Two performance examples from my environment for loading a form (this is not only loading iGrid but also the call to the database). The only thing I changed, when measuring the time, is the attachment of the iGrid to the AFM.
1. Datatable with 50 columns and 720 rows loaded through FillWithData() method
Form loading time without AFM: +/- 900 ms
Form loading time with AFM: +/- 5000 ms
2. Datatable with 93 columns, 163 rows loaded through FillWithData() method
Form loading time without AFM: +/- 740 ms
Form loading time with AFM: +/- 8000 ms

The performance in these two examples deteriorates by a factor of 5,5 to 11 when the AFM is attached. This gives complaining users, so I’m looking for a way to make performance better.

Questions:
1. Is it a known issue that the performance degradation is so big or is it an indication that I am doing something wrong?
If it is a known issue: are you working on an update/improvement?

2. After reading
https://10tec.com/forum/...ilterManager-is-attached 
I tried the following:
a) Tested the case where the grid is not assigned in the autofiltermanager property editor, and then attached it after the grid is filled (right after .FillWithData(..) is called).
b) Tested the below code (where iGridData is the iGrid object and igFltrData is the AFM object) where the iGrid object is detached before the .FillWithData(..) call and attached again after that call.

private void FillGrid2()
{
DataTable dt = getDataTable();
iGridData.BeginUpdate();
igFltrData.Grid = null;
iGridData.FillWithData(dt);
igFltrData.Grid = iGridData;
iGridData.EndUpdate();
}

Unfortunately no difference in performance(time) is measured in both test cases.
So, what am I doing wrong here, are there any other conditions for this to work?

3. I’m using the CreateColAutoFilter event (page 138 in the manual) to specify which columns should not be auto filtered. This does help with reducing loading time (but I do want an autofilter on most columns).
Are there other suggestions to reduce loading time?

Hope you can help me out!
Igor/10Tec
2021-11-05T15:48:19Z
The nature of the problem and the solution is explained in the forum thread you referred to. Most likely, you do not detach the AutoFilterManager properly. Can you send us a sample project demonstrating what you do in a real app to our support email?

FYI: remove the bi, obj and the hidden .vs subfolders of your VS solution before zipping the project to create an archive of a much smaller size and to avoid blocking your email because of executable contents.
roke
  • roke
  • Newbie Topic Starter
2021-11-11T16:40:17Z
After trail&error I found out that the problem was a VS2019 debug setting...
It took the AutoFilterManager 10 seconds to attach 300 rows with 75 columns (22.500 cells)
When turning off the VS2019 'IntelliTrace’ setting the time, when debugging, went to 2 seconds
Testing with a release .exe showed an avarage time of 1700 ms, which is ok
(Difference between debug and release is optimization in the release version by the compiler)

In debug I saw no difference when disconnecting the grid from the AFM before loading the grid. Haven't tested it with a release version yet