|Version 16 (modified by 13 years ago) ( diff ),|
Writing code which runs fast.
Consider having configurations which are read from DB frequently but written-to rarely, be set in configuration files which are written-out from the DB (like the CSS from themes)
- If a specific inner-loop routine canot be optimised in Python, then consider writing a C routine for this use case.
NB These vary on cases, so use the Profiler to see how they work in your cases...
for i in range(0, len(rows)): row = rows[i]
runs much faster than:
for row in rows:
(0.05 vs. 0.001 seconds in one test case, 2x improvement in another & a slight negative improvement in a 3rd).
value = table[id].field
runs 1.5x faster than:
value = db(table.id==id).select(table.field, limitby=(0, 1))
(0.012 vs. 0.007 seconds vs in a test case)
- Web2Py can use cProfile:
web2py.py -F profiler.log
- or if running as service, edit
profiler_filename = 'profiler.log'
- YSlow plugin for Firebug: http://developer.yahoo.com/yslow/