Difference between revisions of "Development:Performance"

From VsWiki
Jump to: navigation, search
 
(2 intermediate revisions by one other user not shown)
Line 9: Line 9:
 
: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. 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)
+
:9K fighters in 9 groups, friendly. 500 Nicander vs. 500 Lancelot: 7-9 fps (comms off, 0 missiles on lancelot)
  
 +
 +
*CommunicationXML with sound files == ueberslow
  
 
* Fix bolt collision speed
 
* 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
 
* AI ... irregularities in AggressiveAI::Execute
 
: Potential fix applied-- not yet verified
 
: Potential fix applied-- not yet verified
Line 23: Line 24:
  
 
Addressed:
 
Addressed:
 +
* Fixed apart in bolt collision. Bolt collision is still the bottleneck, but not by as much
 +
* Made bolts collide in x-order rather than texture order
 +
* Sort bolts on x rather than radius squared
 +
* Added bolt draw culling
 
* Fix repair function cost to not be proportional to the time of a physics frame
 
* 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
 
* Make targetting cheaper--especially when no target is able to be selected

Latest revision as of 07:39, 9 August 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: 7-9 fps (comms off, 0 missiles on lancelot)


  • CommunicationXML with sound files == ueberslow
  • Fix bolt collision speed
  • 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:

  • Fixed apart in bolt collision. Bolt collision is still the bottleneck, but not by as much
  • Made bolts collide in x-order rather than texture order
  • Sort bolts on x rather than radius squared
  • Added bolt draw culling
  • 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