Skip to content

Performance TODO List

peller edited this page Jan 26, 2012 · 21 revisions
  • Build review and commenting into layer, remove any old build workarounds for review and commenting as a separate project

  • Review network panel for individual network hits

    • e.g. propvieweffects.css, acme.js [#1642]
    • Avoid multiple calls to getMetaRoot
  • Turn on async loading for Maqetta application using AMD #1637

  • Optimize user pages using dynamic AMD aggregator

    • impacts loading both the designer and preview modes, as well as the final product
    • quick solution would be to preload most/all of dijit (e.g. dijit-all) Does not really address the problem, nor does this account for other toolkits
    • optimize CSS requests (packaged, custom themes) inlining @import references, either per level or have a server task crawl the tree and create the batched response. Perhaps shrink whitespace, comments also
    • shrink and concatenate Javascript files using Dojo build tool or similar. May have significant performance problems of its own and not be suitable for davinci runtime.
  • Review images

    • convert palette category icons to data: images?
    • add anything to sprites?
  • Batch server requests to reduce latency

    • combine/inline package/widget JSON files on server
    • a REST protocol to return multiple JSON objects, CSS files, etc.
    • CSS for modeling (different than CSS requests from HTML, below) - could also combine, but in a structure which preserves filename info, or parse the model on the server and return as JSON
    • Individual widget metadata
    • Tree requests, per level?
  • Share Dojo/Dijit for themeeditor and design mode

  • More JS profiling

    • hotspots
    • repaints/layouts, many likely triggered by Dijit
  • Memory profiling

  • Deferred loading, in general

    • load tabs on demand, or prefetch - only load visible content on load (partially implemented)
  • Further build goals:

    • need strategy for build for ve and/or preview modes
    • build BBT "plugins" as layers
    • build across osgi plugins (or eliminate osgi plugins), i.e. davinci.review plugin
    • Use Google Closure compiler to shrink JS files. Seems to have better results than ShrinkSafe.
      • Or are there switches to ShrinkSafe that we can employ to achieve similar results to Closure?
  • consider removing osgi /jetty from server. would tomcat scale better? bypass servlets for simple resource fetching? what technology does orion use on their server?

  • Batch DOM updates using DocumentFragment

    • Instead of doing many successive DOM creations/insertions into the page Document, do them into a DocumentFragment, then add the DocumentFragment to the page Document. This provides much better DOM performance.
  • Performance Tools

Clone this wiki locally