This is a collection of testsprites, one of the test programs of SDL with various language bindings.
The environment is my Thinkpad R40e (Celeron 1.70GHz, 512MB memory, FC5 Linux, linux-2.6.15).
All test programs are in 16bpp and do not use SDL_UpdateRects but use SDL_Flip (there are some bindings which does not support SDL_UpdateRects).
All benchmark runs 5 times and use the results of the average of theirs intermediate 3 times result. There are benchmark scripts. bench.rb & bench.sh . Note it is not precise bench mark and the error may be about 2FPS.
Language | FPS | Comments |
---|---|---|
Ada | 225.293 | gcc-4.1.0 -O2 AdaSDL-20010504 |
Pascal(JEDI) | 225.04 | FreePascal-2.0.2 -O2 JEDI-SDLv0.5 |
C | 224.903 | gcc-4.1.0 -O2 |
Pascal(S4F) | 224.563 | FreePascal-2.0.2 -O2 SDL4Freepascal-1.2.0.0 |
D | 223.963 | gcc-4.0.2 gdc-0.16 -O2 SDL.d |
D | 223.96 | dmd-0.157 -O SDL.d |
Java | 223.949 | gcj-4.1.0 -O2 sdl4gcj-0.3.0 |
Objective-C | 222.793 | gcc-4.1.0 -O2 |
OCaml | 221.515 | ocamlopt-3.09.2 ocamlsdl-0.7.2 |
Java(JNI) | 219.568 | Java-1.5.0_04 sdljava-0.9.1 |
OCaml | 215.893 | ocaml-3.09.2 ocamlsdl-0.7.2 |
Ruby | 214.261 | yarv-r502 (OPT_BASIC_OPERATIONS, OPT_INLINE_METHOD_CACHE, OPT_OPERANDS_UNIFICATION, OPT_UNIFY_ALL_COMBINATION) rubysdl-1.1 |
Erlang | 203.398 | erlang-R11B-0 esdl-0.95.0630 |
Ruby | 190.39 | yarv-r502 rubysdl-1.1 |
Scheme(Guile) | 186.0 | Guile-1.6.7 guile-sdl-0.0.1 (without SDL_Event) |
Scheme | 182.539 | Gauche-0.8.3 Gauche-sdl-0.5.1 |
Haskell | 180.0 | ghc-6.4.1 HSDL-0.2.0 |
Boo | 177.258 | booc-0.7.5.2013 sdldotnet-4.0.3-1 mono-1.1.13.4 |
Ruby | 175.284 | ruby-1.8.4 rubysdl-1.1 |
Boo | 173.812 | booi-0.7.4.2013 sdldotnet-4.0.3-1 mono-1.1.13.4 |
C# | 169.685 | sdldotnet-4.0.3-1 mono-1.1.13.4 |
Python | 153.141 | python-2.4.2 pygame-1.6 |
JavaScript | 125.298 | gcj-4.1.0 -O2 rhino1_6R2 jsc -opt 9 sdl4gcj-0.3.0 |
Perl | 116.219 | perl-5.8.8 SDL_Perl-2.1.3 |
JavaScript | 80.955 | gcj-4.1.0 rhino1_6R2 rhino -opt 9 sdl4gcj-0.3.0 |