Physics engines/Speed tests: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (init)
 
m (Physic Engines/Speed Tests moved to Physics engines/Speed tests: Proper capitalization/parent move)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Image:Graph.png]]

[[Image:Graph_circles.png]]

''(''''not drawing'''' means that only the physics calulations are done, but no pygame drawing)''

'''Please Note:''' The tests were done with Python, and box2d's implementation with SWIG might have an edge on chipmunk's CTypes bindings.


Info:
Info:
- Tested with Python 2.5, and the latest engine releases as of March 17., 2008
- Source Codes: http://svn2.assembla.com/svn/elements/speedtest/
- Speed Test were made by Joshua Minor and Chris Hager
- Tested by Joshua Minor and Chris Hager, March 17., 2008
- Source Codes: http://svn2.assembla.com/svn/elements/speedtest/
- Timings are average after 10 times
- In test3 and 4, fps are captured to the console all 3 seconds
- In test3, 4, 5 and 6, the FPS are captured to the console all 2 seconds
- With pressing "1", 25 balls will be added and the element count printed to console
- by pressing "1", 25 balls will be added and the element count printed to console
Line 12: Line 21:
=======================================================================
=======================================================================
Test1
Test1 - Librariy Loadtime
=====
=========================
1. Loading Library
1. Loading Library
2. Creating A World with Gravity
2. Creating A WorldFPS WITH Gravity
Box2d:
Box2d:
Line 28: Line 37:
Test 2
Test 2 - Balls: 40 fps, 5 iterations
======
====================================
1. U Shaped World
1. U Shaped World
2. Ball radius = 10px
2. Ball radius = 10px
x. 40.0 fps, 5 iterations per update
x. 40.0 fps, 5 iterations per update
WITH DRAWING WITHOUT DRAWING (test2-2.py)
FPS WITH DRAWING FPS WITHOUT DRAWING (test2-2.py)
Balls / FPS Box2d Chipmunk Box2d Chipmunk
Balls / FPS Box2d Chipmunk Box2d Chipmunk
0 40 40 40 40
0 40 40 40 40
Line 43: Line 52:
Test 3
Test 3 - Balls: 40 fps, 10 iterations
======
=====================================
1. Wide ground, small 50px stoppers left and right
1. Wide ground, small 50px stoppers left and right
2. Ball radius = 10px
2. Ball radius = 10px
x. 40.0 fps, 10 iterations per update
x. 40.0 fps, 10 iterations per update
WITH DRAWING WITHOUT DRAWING (test3-2.py)
FPS WITH DRAWING FPS WITHOUT DRAWING (test3-2.py)
Balls / FPS Box2d Chipmunk Box2d Chipmunk
Balls / FPS Box2d Chipmunk Box2d Chipmunk
0 40 40 40 40
0 40 40 40 40
Line 59: Line 68:
Test 4
Test 4 - Balls: 50 fps, 10 iterations
======
=====================================
1. Wide ground, small 50px stoppers left and right
1. Wide ground, small 50px stoppers left and right
2. Ball radius = 10px
2. Ball radius = 10px
x. 50.0 fps, 10 iterations per update
x. 50.0 fps, 10 iterations per update
WITH DRAWING WITHOUT DRAWING (test4-2.py)
FPS WITH DRAWING FPS WITHOUT DRAWING (test4-2.py)
Balls / FPS Box2d Chipmunk Box2d Chipmunk
Balls / FPS Box2d Chipmunk Box2d Chipmunk
0 50 50 50 50
0 50 50 50 50
Line 75: Line 84:
Test 5 - Squares: 40 fps, 10 iterations
=======================================
1. Wide ground, small 50px stoppers left and right
2. Square side = 20px
x. 40.0 fps, 10 iterations per update
FPS WITH DRAWING FPS WITHOUT DRAWING
Squares / FPS Box2d Chipmunk Box2d Chipmunk
0 40 40 40 40
100 40 40 40 40
150 34 30 40 40
200 28 24 40 40
250 22 19 40 40
300 19 17 40 40
350 16 14 40 38
400 - - 40 33
500 - - 40 25
Test 6 - Squares: 50 fps, 10 iterations
=======================================
1. Wide ground, small 50px stoppers left and right
2. Square side = 20px
x. 50.0 fps, 10 iterations per update
FPS WITH DRAWING FPS WITHOUT DRAWING (test4-2.py)
Squares / FPS Box2d Chipmunk Box2d Chipmunk
0 50 50 50 50
50 50 49 50 50
100 43 40 50 50
150 32 30 50 50
200 26 24 50 50
250 21 20 50 50
300 18 16 50 50
350 15 14 50 38
400 - - 50 33
500 - - 50 24
TESTS ON THE XO LAPTOP
TESTS ON THE XO LAPTOP
> Linux 2.6.22-20071121.7.olpc, B4, Build 650
> Linux 2.6.22-20071121.7.olpc, B4, Build 650
> AMD Geode with 431.222 MHz, 128 KB Cache, 256 MB RAM
> AMD GeodeFPS WITH 431.222 MHz, 128 KB Cache, 256 MB RAM
============================================================
============================================================
Test 3
Test 3 - Balls: 40 fps, 10 iterations
======
=====================================
1. Wide ground, small 50px stoppers left and right
1. Wide ground, small 50px stoppers left and right
2. Ball radius = 10px
2. Ball radius = 10px
x. 40.0 fps, 10 iterations per update
x. 40.0 fps, 10 iterations per update
WITH DRAWING WITHOUT DRAWING (test3-2.py)
FPS WITH DRAWING FPS WITHOUT DRAWING (test3-2.py)
Balls / FPS Box2d Chipmunk Box2d Chipmunk
Balls / FPS Box2d Chipmunk Box2d Chipmunk
0 40 40 40 40
0 40 40 40 40
Line 95: Line 143:
125 - - 40 12
125 - - 40 12
Test 4
Test 4 - Balls: 50 fps, 10 iterations
======
=====================================
1. Wide ground, small 50px stoppers left and right
1. Wide ground, small 50px stoppers left and right
2. Ball radius = 10px
2. Ball radius = 10px
x. 50.0 fps, 10 iterations per update
x. 50.0 fps, 10 iterations per update
WITH DRAWING WITHOUT DRAWING (test4-2.py)
FPS WITH DRAWING FPS WITHOUT DRAWING (test4-2.py)
Balls / FPS Box2d Chipmunk Box2d Chipmunk
Balls / FPS Box2d Chipmunk Box2d Chipmunk
0 50 50 50 50
0 50 50 50 50
25 42 28 50 50
25 42 28 50 50
50 27 19 50 35
50 27 19 50 35
75 20 13 50 24
75 20 13 50 24
100 16 9 50 18
100 16 9 50 18
125 - - 50 16
125 - - 50 16
150 - - 50 12
150 - - 50 12
Test 5 - Squares: 40 fps, 10 iterations
=======================================
1. Wide ground, small 50px stoppers left and right
2. Square side = 20px
x. 40.0 fps, 10 iterations per update
FPS WITH DRAWING FPS WITHOUT DRAWING
Squares Box2d Chipmunk Box2d Chipmunk
0 40 40 40 40
6 40 29 40 40
12 34 20 40 40
18 27 15 40 40
24 22 13 40 40
30 20 9 40 39
36 16 8 40 32
42 14 7 40 28
48 12 5 40 26
54 11 4 39 22
60 - - 38 19
66 - - 34 18
72 - - 30 15
78 - - 28 13


[[category:software]]
[[category:physics]]

Latest revision as of 20:33, 9 July 2008

Graph.png

Graph circles.png

('not drawing' means that only the physics calulations are done, but no pygame drawing)

Please Note: The tests were done with Python, and box2d's implementation with SWIG might have an edge on chipmunk's CTypes bindings.


Info: 
   - Tested with Python 2.5, and the latest engine releases as of March 17., 2008
   - Tested by Joshua Minor and Chris Hager, March 17., 2008
   - Source Codes: http://svn2.assembla.com/svn/elements/speedtest/
   - In test3, 4, 5 and 6, the FPS are captured to the console all 2 seconds
   - by pressing "1", 25 balls will be added and the element count printed to console
    

  TEST ON AN AMD64 SYSTEM
    > Linux 2.6.19-gentoo-r5 #1 SMP Tue Jul 31 09:51:33 CEST 2007 
    > x86_64 AMD Athlon(tm) 64 Processor 3200+ AuthenticAMD GNU/Linux
=======================================================================

  Test1 - Librariy Loadtime
  =========================
  1. Loading Library
  2. Creating A WorldFPS WITH Gravity  

  Box2d:
    real    0m0.054s
    user    0m0.028s
    sys     0m0.008s

  Chipmunk:
    real    0m0.080s
    user    0m0.052s
    sys     0m0.012s


  Test 2 - Balls: 40 fps, 5 iterations
  ====================================
  1. U Shaped World
  2. Ball radius = 10px
  x. 40.0 fps, 5 iterations per update
    
                   FPS WITH DRAWING        FPS WITHOUT DRAWING (test2-2.py)
  Balls / FPS      Box2d   Chipmunk        Box2d    Chipmunk
    0              40        40            40        40
    200            39        39            40        40
    300            32        34            40        40
    400            26        27            40        40
    500            23        23            40        40
      
      
  Test 3 - Balls: 40 fps, 10 iterations
  =====================================
  1. Wide ground, small 50px stoppers left and right
  2. Ball radius = 10px
  x. 40.0 fps, 10 iterations per update
  
                   FPS WITH DRAWING        FPS WITHOUT DRAWING (test3-2.py)
  Balls / FPS      Box2d   Chipmunk        Box2d   Chipmunk
    0              40        40            40        40
    100            40        40            40        40
    200            39        39            40        40
    300            32        30            40        40
    400            26        22            40        40
    500            22        18            40        32


  Test 4 - Balls: 50 fps, 10 iterations
  =====================================
  1. Wide ground, small 50px stoppers left and right
  2. Ball radius = 10px
  x. 50.0 fps, 10 iterations per update
  
                   FPS WITH DRAWING        FPS WITHOUT DRAWING (test4-2.py)
  Balls / FPS      Box2d   Chipmunk        Box2d   Chipmunk
    0              50        50            50        50
    100            50        50            50        50
    200            45        41            50        50
    300            33        30            50        49
    400            27        24            49        40
    500            21        19            49        33


  Test 5 - Squares: 40 fps, 10 iterations
  =======================================
  1. Wide ground, small 50px stoppers left and right
  2. Square side = 20px
  x. 40.0 fps, 10 iterations per update
    
                    FPS WITH DRAWING        FPS WITHOUT DRAWING
  Squares / FPS     Box2d    Chipmunk       Box2d   Chipmunk
    0               40         40           40        40
    100             40         40           40        40
    150             34         30           40        40
    200             28         24           40        40
    250             22         19           40        40
    300             19         17           40        40
    350             16         14           40        38
    400             -          -            40        33
    500             -          -            40        25
        
        
  Test 6 - Squares: 50 fps, 10 iterations
  =======================================
  1. Wide ground, small 50px stoppers left and right
  2. Square side = 20px
  x. 50.0 fps, 10 iterations per update
  
                   FPS WITH DRAWING         FPS WITHOUT DRAWING (test4-2.py)
  Squares / FPS     Box2d   Chipmunk        Box2d   Chipmunk
    0               50        50            50        50
    50              50        49            50        50
    100             43        40            50        50    
    150             32        30            50        50
    200             26        24            50        50
    250             21        20            50        50
    300             18        16            50        50
    350             15        14            50        38
    400             -          -            50        33
    500             -          -            50        24

    
  TESTS ON THE XO LAPTOP
    > Linux 2.6.22-20071121.7.olpc, B4, Build 650
    > AMD GeodeFPS WITH 431.222 MHz, 128 KB Cache, 256 MB RAM
============================================================

  Test 3 - Balls: 40 fps, 10 iterations
  =====================================
  1. Wide ground, small 50px stoppers left and right
  2. Ball radius = 10px
  x. 40.0 fps, 10 iterations per update
    
                   FPS WITH DRAWING        FPS WITHOUT DRAWING (test3-2.py)
  Balls / FPS      Box2d   Chipmunk        Box2d    Chipmunk
    0              40        40            40        40
    25             40        28            40        40
    50             27        16            40        35
    75             21        15            40        23
    100            15        10            40        16
    125            -        -              40        12
    
    
  Test 4 - Balls: 50 fps, 10 iterations
  =====================================
  1. Wide ground, small 50px stoppers left and right
  2. Ball radius = 10px
  x. 50.0 fps, 10 iterations per update
  
                   FPS WITH DRAWING         FPS WITHOUT DRAWING (test4-2.py)
  Balls / FPS      Box2d   Chipmunk         Box2d   Chipmunk
    0              50        50             50        50
    25             42        28             50        50
    50             27        19             50        35
    75             20        13             50        24
    100            16        9              50        18
    125            -         -              50        16
    150            -         -              50        12


  Test 5 - Squares: 40 fps, 10 iterations
  =======================================
  1. Wide ground, small 50px stoppers left and right
  2. Square side = 20px
  x. 40.0 fps, 10 iterations per update
    
                    FPS WITH DRAWING        FPS WITHOUT DRAWING
  Squares           Box2d   Chipmunk        Box2d   Chipmunk
    0               40        40            40        40
    6               40        29            40        40
    12              34        20            40        40
    18              27        15            40        40
    24              22        13            40        40
    30              20        9             40        39
    36              16        8             40        32
    42              14        7             40        28
    48              12        5             40        26
    54              11        4             39        22
    60              -         -             38        19
    66              -         -             34        18
    72              -         -             30        15
    78              -         -             28        13