Difference between revisions of "Development:Performance"

From VsWiki
Jump to: navigation, search
Line 13: Line 13:
  
 
* Fix bolt collision speed
 
* Fix bolt collision speed
: inc and dec take half the time... 1/4 taken by Apart (may be SSEized if necessary--and aligned to 16 bit, etc) and the last fourth is in the actual collision function which inlines the rest.
+
: inc and dec take half the time... 1/4 taken by CollideChecker<Bolt>::Apart (may be SSEized if necessary--and aligned to 16 bit, etc) and the last fourth is in the actual collision function CollideChecker<Bolt>::CheckCollisions which inlines the rest. (then come draw, get effective relationship, ChooseTargetClass::aquire other Apart<Unit> and finally UnitWIthinRangeLocator.... then down to the old favs (linear_itnerpolate_uncapped, getrelation, quanternion::to_matrix)
 
* AI ... irregularities in AggressiveAI::Execute
 
* AI ... irregularities in AggressiveAI::Execute
 
: Potential fix applied-- not yet verified
 
: Potential fix applied-- not yet verified

Revision as of 05:55, 3 July 2006

Current (23:43, 20 June 2006 (PDT)) test performance:

(VS Windows Test-rig):

1K fighters in 1 group, all friendly: playable, sufficient
10K fighters split into 10 groups, all friendly: sub-par, semi-playable
9K fighters in 9 groups, friendly. 100 Nicander vs. 100 Lancelot: <10 fps (comms on) <25 fps (comms off)
9K fighters in 9 groups, friendly. 500 Nicander vs. 500 Lancelot: <10 fps (comms off)


  • Fix bolt collision speed
inc and dec take half the time... 1/4 taken by CollideChecker<Bolt>::Apart (may be SSEized if necessary--and aligned to 16 bit, etc) and the last fourth is in the actual collision function CollideChecker<Bolt>::CheckCollisions which inlines the rest. (then come draw, get effective relationship, ChooseTargetClass::aquire other Apart<Unit> and finally UnitWIthinRangeLocator.... then down to the old favs (linear_itnerpolate_uncapped, getrelation, quanternion::to_matrix)
  • AI ... irregularities in AggressiveAI::Execute
Potential fix applied-- not yet verified
  • Fix Order::GetEffectiveRelationship to use hash table and no while loop
Will not be easy since Comm AI's and Fire is not guaranteed to be first order in order queue, etc. may need to promote hit stats up higher to unit fields :-/ Difficult to keep optimization apart from interfering with modularity
  • Fix loading times
  • Pressing 'd' (dock) key can completely pause the game for a noticeable amount of time, even when docking does not occur (e.g. target random fighter far away. press 'd')


Addressed:

  • Fix repair function cost to not be proportional to the time of a physics frame
  • Make targetting cheaper--especially when no target is able to be selected
some progress on this front - at the very least, it decays gracefully now. Heuristics and vegastrike.config constants likely need some pondering. Abject pauses appear to be removed.
23:43, 20 June 2006 (PDT)
  • Fix Communication
23:43, 20 June 2006 (PDT)
  • Fix Target acquisition backoff
23:43 1 July 2006