Physics engines/Speed tests

From OLPC
Jump to: navigation, search

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