We've got an application on GWT 2.5.0 + GXT 3.0.4 with one main page, containing a big table (like Excel) and a couple of heavy popups (implemented using GXT Windows).
It works reasonably good at Chrome, FF, and IE9 but is incredibly slow in IE8.
Memory consumption on opening the main page and the most heavy popup is as follows:
FF ~250Mb
IE9 ~230 Mb
IE8 ~600-700 Mb (!!) I don't think it's a memory leak, because memory stayed stable and didn't increase overnight.
Compiler settings are 'use closure compiler + max optimization'.
I'm at a loss where to start, and how to fix this problem.
One idea was that rendering is fast in IE9 but not in IE8 because of a GPU acceleration, but that doesn't explain amount of memory needed for the IE8. Why then IE9 is okay, but not IE8 ?
We're currently profiling our application with dynatrace, but that doesn't help with memory usage. Any ideas greatly appreciated, thank you !
Related
This is a very vague question, but I have noticed that Polymer (both version 1.0 and 2.0) are very slow to load in Mozilla FireFox when you have a large number of custom elements.
Does anyone know any high-level, general strategies for increasing the load time?
The page loads near instantly in Chrome, but can take up to 4 seconds in FireFox. I can see on the network tab that the resources are coming just as fast, but the in-browser render time is significantly slower.
Or even a method to test exactly what is taking a while to load in FireFox - that would be very helpful. Right now, I can see each network request, but not just browser processing.
Thanks in advance!
**edit: the elements are all minified and vulcanized into 1 file.
Try loading the webcomponents-lite.min.js instead of webcomponents.js this should give you way better Performance in FF
Try using the PRPL-pattern.
It's described here: https://developers.google.com/web/fundamentals/performance/prpl-pattern/
Or use the optimizations polymer build gives you:
https://www.polymer-project.org/2.0/docs/tools/polymer-cli
This is a very bizarre any very frustrating issue so please bear with me for the full explanation.
PREEMPTIVE NOTE: This is not a question of how to improve DOM/CSS for performance. You will see when you read the frustrations.
We have recently re-worked out website to be cross-browser (e.g. < !DOCTYPE html >)
After all the pain HTML and CSS re-factoring, we thought things were fine. However our website which has a pretty heavy DOM is incredibly sluggish to the point of being unusable. Example: clicking to select a row takes 10 seconds until it is highlighted and its check-box is checked.
Frustrations:
1) This sluggishness is not universal. Only IE9 suffers from this. IE8, IE10, FireFox, Chrome are all speedy!
2) IE9 itself if changed in debugger to IE8 documents mode becomes speedy! But not in its own IE9 mode.
3) While we are noticing the some sluggishness, the SUPER sluggishness (to the point of unusable) is only on specific machines.
4) Of course, one of those machines is a client.
The Question:
What could possibly unique about specific machines to cause super sluggishness? What could cause these machines to suffer more than others?
Things we've checked:
1) Windows 7 fully updated.
2) We do not have Windows update KB2976627 installed
3) We do not have Windows update KB2670838 installed
4) Disabled all Add-ons
5) Stress again that we disabled Shockwave Flash Object.
6) Tried disabling "Software Rendering" in Internet Options so that the GPU is used.
7) Reduced Windows display quality settings to run for maximum performance.
Additional Edvidence:
When the display area gets smaller, responsiveness increases. This happens when the browser window itself is made smaller or when dragged partly outside the screen boundaries. Also when performance improves as DOM elements removed/hidden.
DynaTrace shows a huge amount of time spent on rendering.
Webpage content:
There is ONLY: HTML, CSS2, JavaScript, JQuery, simple images.
JqGrid 4.5.2
JQuery 1.4.2
JQuery-UI 1.8.2
There is NONE of the following: Flash, video, CSS3, loaded third-party web content.
Machines tried:
OS: Windows 7 Enterprise N 64bit
RAM: 2 GB
CPU: 2.53 Ghz (2 processors)
OS: Windows 7 Enterprise 64bit
RAM: 8 GB
CPU: 2.67 Ghz (2 processors)
IE9 Version:
9.0.8112.16421 64-bit
IE9 Update Version: 9.0.31 (KB2977629)
We tried uninstalling update KB2977629 with no improvement.
Repeat of Question:
What could possibly unique about specific machines to cause super sluggishness? What could cause these machines to suffer more than others?
I discovered the explanation. As I feared when I phrased the original question JQGrid was a distraction (red herring). The real cause was answered in another stack overflow article.
In short, our page contains a lot of rounded corners (i.e. border-radius) styling. And there is a bug in IE9 that causes the rendering engine to choke on this. Once this styling was removed, everything was speedy again!
This also explains why IE8 browsers and even using IE9 with IE8 documents mode were fast. IE8 does not support border-radius so it didn't fall into this issue.
I have a AngularJS application that makes use of web services to load the content and render the view. I've checked the performance of application on Chrome and it is running fast enough. However on IE 8, I'm facing huge performance issues.
Noticed the memory usage for Internet Explorer. Found that it was around 200MB. If I opened multiple instances of the application in separate tabs, the memory usage kept on doubling with each instance. This is slowing down the response time and in the effect the whole PC performance. No such issues are there on Chrome.
I feel that it is because of the data that is present in the model for the application. So with each tab on IE, the model data is doubled and the RAM usage also increases. However, this problem doesn't occur for me in Chrome.
Please suggest some performance optimization techniques that I can use.
Try to avoid the use of "ng-repeat" for a large list rendering. Or, you can use the infinite scrolling for the same.
We are experiencing a serious memory problem in our GWT based web application when running in Mac, for Chrome, Firefox and Safari.
For example, with Firefox, when looking at the Activity Monitor on Mac, the memory consumption is quickly increasing across time, even through frequent refreshes, and can reach 1 GB after a significant session. Similar phenomena happens for Chrome and Safari.
But, we cannot see a real reason using various profiling tools, including Java JProfiler (for GWT) and Chrome profiler and timeline looking at native JS, listeners and DOM elements.
Actually there are 2 related problems here:
The memory is increasing while using the UI for along time without refresh. In this case, we can see some uncollected garbage SVG elements (we are using SVG based canvas) that are unreachable, but the memory increase in the Activity Monitor is much higher than what we would expect with this garbage.
The memory remains high even after multiple refreshes, and even though the profiler shows that all the above garbage is completely gone.
We are chasing this leak for a while, with no results, so I would appreciate any help.
Thanks,
Yaron.
The problem occurs only on Mac?
What GWT version are you using? 2.5?
Did you saw this issue https://code.google.com/p/google-web-toolkit/issues/detail?id=6938?
I faced several issues with leaks using GWT before, but in 2.5 version it works fine, even in IE!
I've tracked down some leaks in my GWT application before, and it's certainly not easy to determine where they're coming from thanks to Java's garbage collector hiding what's going on. The most common reason for a leak would be cyclical references, so multiple objects can't be garbage collected because they reference each other. They're tough to spot on your own so I use a library called FindBugs - it also comes with a very convenient Eclipse plugin. FindBugs literally finds anything you could possibly consider and has worked wonders for me. BUT make sure to play with the settings first; cyclical reference checking is not enabled by default.
Bruno_Ferreira makes a good point, too - make sure you're up to date with your GWT version as they're always improving memory leaks.
I have a JSF application where the UI components render very slowly in IE7 but give a much better performance.Dont know what can be done ,but just throwing this question out for suggestion if any setting/configuration makes it perform better
IE6 and IE7 have a poor JS engine and a buggy slow HTML table renderer. Thus, there's either extremely a lot of JS code, or an extremely large HTML table in your JSF page. Solutions to both are obvious enough, but I can't give them in detail as long as you tell nothing about the JSF implementation and component libraries used.
I can at least tell that Woodstock (the "Visual JSF" thing in Netbeans) is known to be hogging slow like that. It comes along with a lot of JS code (components are practically rendered/built in JS). It is fortunately abandoned since 2 years.