testsprite collection

since: 2006-05-21 update: 2006-05-22 count:

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.

Results

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

Infos

There is my old results (in Japanese) . testsprite.pl is modified and runs faster than the previous result. guile-sdl does not have SDL_Event and I implemented with signal handler.

TODO


home / index

shinichiro.hamaji _at_ gmail.com / shinichiro.h