Tuesday, July 12, 2011

Review: GWT best practices for writing smaller, faster apps



Performance Tips:

  • Reduce HTTP Request, use ClientBundle
  • Use Scheduler for efficient Loop
  • Use Gwt-RPC / RequestFactory to do batch request
  • Gwt-RPC type explosion (because of serializer and deserializer for each subtype): use contrete types (ArrayList, not List), Limit Polymorphism with Gwt-RPC, blacklist certain RPC types, consider RequestFactory
  • Don't use Widget if HTML will do (unless event responds is required, but you can't add Widgets to HTML elements; counter with HTML panel perhaps?), use LayoutPanels, use Cell Widgets
  • Place is bookmarkable state, is History Management (handle app state when use click back or open a specific form directly through specific url)
  • Place + Activity + Code Splitting (load JS on demand)
  • Compile Faster: draftComple, set one User Agent and Locale
  • Shrink JS (around 7% reduction for 300K size): -XdisableClassMetadata (Disable some java.lang.Class methods like getName), -XdisableCastChecking, -compileReport, set compiler.stackMode strip, set compiler.enum,obfuscate.names true, set CssResource.obfuscationPrefix empty

No comments:

Post a Comment