From: Mart K. <ma...@ke...> - 2010-05-02 11:33:40
|
Hello Wolf-Dieter (and others), On Sunday 02 May 2010 12:32:23 W.-D. Beelitz wrote: > Hello all, > > > Performance issues > > Some weeks ago I got a new PC and had the chance to compare TORCS/SD on it > with the old one. > The CPU power is not changed a lot, but the graphic card. > > With the new system I can drive a lot more opponents in a race (in a > release version). > > So I assume that optimizations of the CPU usage will not be the great step. > The real chance is using multithreading (for robots) and avoid unneeded > copying of data. > > What I found while working with the robot code is, that there is a lot of > data being copied again and again every time step. The data provided in the > interfaces for the robots is sorted by the ranking while race! > The leading driver's data is placed in the array first, followed by the > next driver and if the leading changes the cars order in the array is > changed as well. I can't imagine why this is really needed. Is this true? I thought the data is only is copyed is someone is overtaken for position, which does occur much less then every timestep. If the robots are more interested in who drives before him on the track, we might also store pointers to the car in that position (I implemented that before to make blue and yellow flags easier). But I don't think we get much performance improvement through this. > Using pointers to the data should decrease the work load a lot. > > Cheers > > Wolf-Dieter Regards, Mart |