Opened 18 years ago
Closed 12 years ago
#129 closed task (fixed)
Opportunities for optimization (startup)
Reported by: | Jan Wassenberg | Owned by: | |
---|---|---|---|
Priority: | Nice to Have | Milestone: | Alpha 1 |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description (last modified by )
tc_CalculateVariationKey: 1.72362 s (8010x): graphics/objectmanager.cpp
TODO (for some efficiency): use the pre-calculated choices for this object,
which has already worked out what to do for props, instead of passing the
selections into BuildVariation and having it recalculate the props' choices. Release mode: 38.6697 ms
Gamesetup/config.cpp: 300ms
g_ConfigDB.Reload(CFG_SYSTEM); 216ms
LoadGlobals(); 64ms Release mode: 60ms
plain_transform: 500ms
flipping font texture files vertically. fix: convert them to e.g. DDS (possibly compressed, if that looks ok?!)
same thing for art/textures/particles/sprite
cursors also require runtime conversion. ironically enough, being DDS means they have to be converted back to TGA's BGR ordering (required by Windows for cursors) Release mode: 5ms
CSimulation init: 5000msNow about 600ms.
- font load: 350ms (total for 12 fonts) mostly spent building display lists. Better to store coords and render quads in immediate mode? Or use vertex arrays?
- GUI init: 900ms (having subtracted font load time)
[more will be added as they are found]
Change History (6)
comment:1 by , 18 years ago
Description: | modified (diff) |
---|
comment:2 by , 18 years ago
Description: | modified (diff) |
---|
With exception of GUI (haven't drilled down into that) and possibly font loading, time into main menu is looking quite good.
comment:3 by , 18 years ago
Description: | modified (diff) |
---|
comment:5 by , 14 years ago
Milestone: | → Backlog |
---|
comment:6 by , 12 years ago
Milestone: | Backlog → Alpha 1 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
This ticket is years old and any changes made for it made it into Alpha 1.
If we ever want to optimise startup then we'll start from scratch with profiling everything again.
Most of these turn out to be non-issues in release mode. Unfortunately the overhead in debug mode is considerable and I don't see an easy to way to alleviate that, so running in release mode as much is possible is recommended.