Hello,
- SmartGWT version: 6.1p Nightly 2018-10-06 (latest at the time of writing)
- OS: Windows 7, Windows 10
- Browser: IE11 (and Edge)
We have an application with quite complex UI and we noticed performance degradation related to Internet Explorer. We've been trying to implement a simple standalone test case for this with little luck, sorry. I'm reporting this anyway, with as many details added, in a hope that you as experts of the framework might be able to shed some light on this issue.
There seems to be an endless loop of some kind relating to the adjustOverflow function which triggers with IE. The effect is, that the CPU usage rises and rises and eventually gets so bad that it starts to impact the responsiveness of the UI. When we load our application, the CPU usage is low (around 0%) but by resizing the browser window, it is quite easy to get the CPU usage up. The issue seems to be related to (re)drawing the UI somehow. This said, resizing the browser is not needed to trigger the problem - it is just the easiest way to cause many redraws which seem to trigger the issue. The same issue happens with no resizing by just using our application for a while, but of course slower. By resizing, the problem is very easy to trigger.
When we break the execution with the debugger this can be seen:
The code highlighted inside the red box is the code which seems to be running endlessly. By looking at the code, the adjustOverflow seems to delay itself for later execution by checking if the "browser is done drawing". For IE, this check is done by (see the yellow highlighted code) looking if the scrollHeight for the canvas is != 0 and in our case, the scrollHeight seems to always be "undefined". When undefined, the code just churns away endlessly and hogs the CPU.
In our case, the problem happens with IE11 and also with Edge, although in Edge, the CPU usage rises much slower (probably due to the more performant JS-engine).
Sorry to submit this problem in so technical manner, but as said, we have not been able to reproduce the issue with any sensible simple test case. We have a suspicion that using SectionStacks extensively might trigger this bug easier (as the queue for adjustOverflows seems to be full of components somehow related to section stacks in our UI) but this is not at all verified. For us, the problem is quite severe as this problem renders the application unusable quite fast for users of IE browser.
- SmartGWT version: 6.1p Nightly 2018-10-06 (latest at the time of writing)
- OS: Windows 7, Windows 10
- Browser: IE11 (and Edge)
We have an application with quite complex UI and we noticed performance degradation related to Internet Explorer. We've been trying to implement a simple standalone test case for this with little luck, sorry. I'm reporting this anyway, with as many details added, in a hope that you as experts of the framework might be able to shed some light on this issue.
There seems to be an endless loop of some kind relating to the adjustOverflow function which triggers with IE. The effect is, that the CPU usage rises and rises and eventually gets so bad that it starts to impact the responsiveness of the UI. When we load our application, the CPU usage is low (around 0%) but by resizing the browser window, it is quite easy to get the CPU usage up. The issue seems to be related to (re)drawing the UI somehow. This said, resizing the browser is not needed to trigger the problem - it is just the easiest way to cause many redraws which seem to trigger the issue. The same issue happens with no resizing by just using our application for a while, but of course slower. By resizing, the problem is very easy to trigger.
When we break the execution with the debugger this can be seen:
The code highlighted inside the red box is the code which seems to be running endlessly. By looking at the code, the adjustOverflow seems to delay itself for later execution by checking if the "browser is done drawing". For IE, this check is done by (see the yellow highlighted code) looking if the scrollHeight for the canvas is != 0 and in our case, the scrollHeight seems to always be "undefined". When undefined, the code just churns away endlessly and hogs the CPU.
In our case, the problem happens with IE11 and also with Edge, although in Edge, the CPU usage rises much slower (probably due to the more performant JS-engine).
Sorry to submit this problem in so technical manner, but as said, we have not been able to reproduce the issue with any sensible simple test case. We have a suspicion that using SectionStacks extensively might trigger this bug easier (as the queue for adjustOverflows seems to be full of components somehow related to section stacks in our UI) but this is not at all verified. For us, the problem is quite severe as this problem renders the application unusable quite fast for users of IE browser.
Comment