I have a view which is shown upon request but opening multiple instance is not allowed. It has got a tree viewer and 2 table viewers. Upon selection of a tree item there will be some relevant data displayed on respective table viewers. I am seeing problem with this view, whenever a big tree data is displayed in the viewer, the closing or restoring of this view becomes very slow and hangs up the application for some time. I am not sure what is happening. Does anyone know what makes it to happen to be slow?
Asked
Active
Viewed 59 times
0
-
Large trees cause a lot of memory allocation / deallocation and can perform poorly. You might want to look at virtual trees using ILazyTreeContentProvider – greg-449 Aug 28 '15 at 16:08
-
I suggest using a performance monitoring tool to find the source of the problem. Sometimes it turns out to be an unoptimized code. You can try http://jvmmonitor.org/. – Arye Shemesh Aug 30 '15 at 06:19
-
I found that the problem is with the org.eclipse.swt.internal.win32.NMLVCUSTOMDRAW, this is running high on memory usage according to profiler whenever restore / close is requested on the view. This has something to do with widget redraw. I tried with resizeListener to turn off and on the reDraw() on the widget but it gets the control only after resize is complete. So right now I am searching for a way to get notified in the code before an restore / close event is called on the view or any event that I can bank on which is sure shot called before and after the resize event. Any ideas? – prakashjv Aug 30 '15 at 08:51