SpeedTests
BlitzMax Forums/MiniB3D Module/SpeedTests
| ||
Speed Test showing the common entity speed times, I was actually surprised to see how much more time moveentity requires compared to the other common entity functions, I'm not sure of all the contingency's, but I think this works SuperStrict Import sidesign.minib3d Graphics3D(800,600,0,2,60) Local t_load1:Int = MilliSecs() Local ball:Tmesh = CreateSphere(20) 'LoadMesh("ball.b3d") Local t_load2:Int = MilliSecs() Local t_load:Int = t_load2 - t_load1 Local ball2:TMesh = CreateSphere(20) PositionEntity(ball2,-20,20,20) Local t_turn1:Int=MilliSecs() For Local x:Int = 1 To 100000 TurnEntity(ball,Rnd(0,180),Rnd(0,180),Rnd(0,180)) Next Local t_turn2:Int=MilliSecs() Local t_turn:Int = t_turn2 - t_turn1 Local t_rotate1:Int = MilliSecs() For Local x:Int = 1 To 100000 RotateEntity(ball,Rnd(0,180),Rnd(0,180),Rnd(0,180)) Next Local t_rotate2:Int = MilliSecs() Local t_rotate:Int = t_rotate2 - t_rotate1 Local t_point1:Int = MilliSecs() For Local x:Int = 1 To 100000 PointEntity(ball,ball2) Next Local t_point2:Int = MilliSecs() Local t_point:Int = t_point2 - t_point1 Local t_form1:Int = MilliSecs() For Local x:Int = 1 To 100000 TFormPoint(0,0,0,ball,ball2) Next Local t_form2:Int = MilliSecs() Local t_form:Int = t_form2 - t_form1 Local t_formx1:Int = MilliSecs() For Local x:Int = 1 To 100000 Local a:Int = TFormedX() Next Local t_formx2:Int = MilliSecs() Local t_formx:Int = t_formx2 - t_formx1 Local t_position1:Int = MilliSecs() For Local x:Int = 1 To 100000 PositionEntity(ball,Rnd(0,180),Rnd(0,180),Rnd(0,180)) Next Local t_position2:Int = MilliSecs() Local t_position:Int = t_position2 - t_position1 Local t_move1:Int = MilliSecs() For Local x:Int = 1 To 100000 MoveEntity(ball,Rnd(0,180),Rnd(0,180),Rnd(0,180)) Next Local t_move2:Int = MilliSecs() Local t_move:Int = t_move2 - t_move1 Local camera:TCamera=CreateCamera() PositionEntity(Camera,0,0,-10) Local light:TLight=CreateLight() PositionEntity(light,0,10,-10) 'Local cube:Tmesh=CreateCube() While Not KeyHit(KEY_ESCAPE) UpdateWorld RenderWorld BeginMax2D() DrawText "LoadTime: " + t_load,0,0 DrawText "TurnTime: " + t_turn,0,12 DrawText "RotateTime: " + t_rotate,0,24 DrawText "PointTime: " + t_point,0,36 DrawText "TFormTime: " + t_form,0,48 DrawText "TFormXCall: " + t_formx,0,60 DrawText "PositionTime: " + t_position,0,72 DrawText "MoveTime: " + t_move,0,84 EndMax2D() Flip Cls Wend I'm looking to boost the speeds(performance) of my game as much as possible, so if there are any suggestions please let me know! |
| ||
this is interesting... I converted the code back to B3D (just a matter of removing the declarations, and here's my results: BMax/MiniB3D (official) LoadTime: 9 TurnTime: 300 RotateTime: 295 PointTime: 310 TFormTime: 288 TFormXCall: 16 PositionTime: 292 MoveTime: 561 BMax/MiniB3D (my own version, Superstrict like the mini fixes) LoadTime: 8 TurnTime: 290 RotateTime: 288 PointTime: 305 TFormTime: 248 TFormXCall: 17 PositionTime: 278 MoveTime: 559 Blitz3D LoadTime: 1 TurnTime: 85 RotateTime: 77 PointTime: 89 TFormTime: 33 TFormXCall: 18 PositionTime: 25 MoveTime: 35 If anyone wants to compare versions (I replaced the original's DrawText with debuglog, so it's easier to copy/paste), here's B3D code: |
| ||
Release Load Time: 2 TurnTime: 51 RotateTime: 51 PointTime: 53 TformTime: 45 TFromXcall 1 Position Time: 48 Move time: 101 Debug Load Time: 5 TurnTime: 207 RotateTime: 202 PointTime: 240 TformTime: 105 TFromXcall 12 Position Time: 197 Move time: 402 Obviously without B3d, or your system specs I can draw no conclusion, however my speed is comparable to yours if I build in Debug mode |
| ||
Hmmm, try a hardcoded value instead of those RND()s. It takes a few millis. |
| ||
Has anyone else test this on there on machine running both in MAX and 3d are the results the same with Blitz3d being that much faster? |