Version 6 (modified by 14 years ago) ( diff ) | ,
---|
Optimisation
There are many things which can be done to optimise the performance, so of them will be minor and some of them may require larger changes. The two goals are:
- Faster
- Less Bandwidth (smaller pages and/or more caching)
1) Develop Automated Performance Metrics
Before Sahana Eden can be effectively optimised, we need a set of performance metrics to optimise to. Metrics should:
- Test as wide as wide a variety of the code as possible.
- Be able to be automatically tested (See: DeveloperGuidelinesTesting).
- Cover different usage scenarios
- Low bandwidth
- High number of users
The Automated Performance Metrics, will also allow us to better share performance statistics of Sahana Eden.
Can test out the performance of different JavaScript options to achieve a task using:
2) Make Enhancements to Sahana Eden
Once the metrics have been developed enhancements can be made to improve these. These enhancement
- Using Profiler Tools to identify parts of the code which require more computation (http://eden.sahanafoundation.org/wiki/DeveloperGuidelinesOptimisation#Profiling).
- Avoid excess DB calls, Use web2py's
cache
instead - Move as much JS to static files as possible
- Investigate the possibility of loading large page components using AJAX (although this should only be for subsequent pages as there is a per-request overhead)
- S3XML's gis_encode(): Remove the Public URL to keep filesize small when loading off same server (GeoJSON &layer=xx)
- KML Stylesheet: Don't repeat the IconStyle for every record if they have the same marker (tuids?)
- Download/execute scripts asynchronously:
See Also: