forked from maqetta/maqetta
-
Notifications
You must be signed in to change notification settings - Fork 0
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
- In Firebug
- In Chrome dev tools
-
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