Thursday, July 10, 2014

Re: IE8 application performs better in dev mode than under compiled mode

I think the remaining compiler settings won't buy you a lot additional performance. The reason why the above settings cost you so much performance is that the generated JavaScript will be 2x+ the size than what it should be. Especially recordLineNumbers hurts as GWT will generate one extra line of code to record line numbers for each line of your app code.

The most optimized JS you can get is when running the GWT compiler with the following parameters:

-XnocheckCasts -XnoclassMetadata -XclosureCompiler -optimize 9

This removes all dynamic class cast checks (no ClassCastException anymore), all class metadata (e.g. Class.getName() will return junk) and runs the final JS through the closure compiler again to safe some additional bits. But again this probably doesn't give you a lot performance and might even be dangerous if your app depends on correct class names from Class.getName().

If you app is still slow then your app is simply doing too much JS / DOM work for IE 8. Most likely you load too much data from the server and display too much stuff at once. In IE 8 for large data tables you should migrate to CellTable / DataGrid which are a lot faster in IE 8 than traditional GWT widgets.

You could also check if you attach a parent widget to the DOM and after it is attached you make for loops to append childs to it. This can also hurt as the browser will do layout recalculations for each child added. Instead first add childs to the parent and then attach the parent to the DOM. Then the browser only needs to do one layout recalculation.

-- J.

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment