/
README
86 lines (58 loc) · 2.59 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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