Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
README
Benchmarking a software implementation of skeletal animation.

Newer numbers, in skinned vertices per second, as of 2011-11-04.  Same machine as before.
MacOS X Version 10.6.8.
2.53 GHz Intel Core i5
4 GB 1067 MHz DDR3

C++
===

gcc, SSE intrinsics: 96 Mverts / second

    $ g++ -O2 -Wall -ffast-math -o skinning_test skinning_test.cpp
    $ ./skinning_test
    Skinned vertices per second: 96420454, blah=0.000000

gcc, scalar math: 63 Mverts / second

    $ g++ -O2 -Wall -ffast-math -o skinning_test_no_simd skinning_test_no_simd.cpp
    $ ./skinning_test_no_simd 
    Skinned vertices per second: 63355501, blah=0.000000

clang, SSE intrinsics: 102 Mverts / second

    $ clang -O2 -Wall -ffast-math -o skinning_test skinning_test.cpp
    $ ./skinning_test
    Skinned vertices per second: 101580000, blah=0.000000

clang, scalar math: 63 Mverts / second

    $ clang -O2 -Wall -ffast-math -o skinning_test_no_simd skinning_test_no_simd.cpp 
    $ ./skinning_test_no_simd 
    Skinned vertices per second: 62928175, blah=0.000000

JavaScript
==========

untyped arrays, Chrome 15: 10 Mverts / second
typed arrays, Chrome 15: 5.8 Mverts / second

untyped arrays, Firefox 7.0.1: 5.1 Mverts / second
typed arrays, Firefox 7.0.1: 8.4 Mverts / second

untyped arrays, Firefox 9 (Aurora, 9.0a2), 2.1 Mverts / second
typed arrays, Firefox 9 (Aurora, 9.0a2), 1.9 Mverts / second

Emscripten (Optimized)
==========

After my previous post, Alon Zakai demonstrated how to compile with
optimizations when using Emscripten.  https://gist.github.com/1343182

    $ ./optimized_emscripten.sh

    $ ../v8-read-only/d8 skinning_test_no_simd.js
    Skinned vertices per second: 226377, blah=0.000000

Chrome 15: Skinned vertices per second: 5184815, blah=0.000000
Firefox 7: Skinned vertices per second: 729270, blah=0.000000
Firefox 9a2: Skinned vertices per second: 734126, blah=0.000000

Emscripten (Unoptimized)
==========

    $ python ../emscripten/tools/emmaken.py -Wall -O3 -o skinning_test_no_simd.bc skinning_test_no_simd.cpp 
    $ python ../emscripten/emscripten.py skinning_test_no_simd.bc > skinning_test_no_simd.js 

V8 trunk, r9884, 87 Kverts / second

    $ ../v8-read-only/d8 skinning_test_no_simd.js 
    Skinned vertices per second: 86872, blah=0.000000

Chrome 15: 87 Kverts / second
       
Firefox 7: 1.0 Mverts / second
Firefox 9 (Aurora, 9.0a2): 160 Kverts / second

--------

OLD RESULTS FROM JANUARY 2011:

Current numbers, in skinned vertices per second, on my Macbook Pro:
- C++: 92.3 million
- JavaScript (Chrome 8): 3.1 million
- JavaScript (Firefox 4 beta 8): 4.3 million
- JavaScript w/ typed arrays (Firefox 4 beta 8): 9.5 million
Something went wrong with that request. Please try again.