狠狠撸
Submit Search
Dart VM Performance
?
8 likes
?
4,184 views
N
nothingcosmos
Follow
Dart VM improves performance, snapshots and jit compiler optimizations.
Read less
Read more
1 of 38
Download now
More Related Content
Dart VM Performance
1.
Dart?VM?Performance Outline Dart?VM のベンチマーク
Dart?VM の仕組み 2013/05/16?Google?I/O?Extended?in?Japan?LT Dart?VM?Advent?Calendar から来ました nothingcosmos?<nothingcosmos@gmail.com>
2.
皆さん Dart?VM ご存知ですか?
3.
2011/11 の Dart?VM
4.
DeltaBlue(2012/05) DeltaBlue(2013/05) Richards(2012/05) Richards(2013/05) 0 100 200
300 400 500 600 700 800 900 1000 180 669 248 887 Octane ベンチマークのスコア スコア ここ 12 ヶ月の Dart?VM の高速化 約 3.71 倍 約 3.57 倍
5.
皆さん Dart?VM に 興味が沸いてきませんか?
6.
Fibonacchi 数で速さを測定 Fibonacchi
数 (40) で測定 V8,?JVM,?gcc,?clang,?icc,?ifort と比較 constexpr は除外 int fibo(int n) { if (n < 2) { return n; } else { return fibo(n-1) + fibo(n-2); } }
7.
V8??fibo(40)?1370?ms V8 JVM clang gcc icc ifort Dart VM 0 200
400 600 800 1000 1200 1400 1600 1370 420 600 430 480 640 408 fibo(40) の実行時間 実行時間 (ms)
8.
JVM??fibo(40)?420?ms V8 JVM clang gcc icc ifort Dart VM 0 200
400 600 800 1000 1200 1400 1600 1370 420 600 430 480 640 408 fibo(40) の実行時間 実行時間 (ms)
9.
clang??fibo(40)?600?ms V8 JVM clang gcc icc ifort Dart VM 0 200
400 600 800 1000 1200 1400 1600 1370 420 600 430 480 640 408 fibo(40) の実行時間 実行時間 (ms)
10.
gcc??fibo(40)?430?ms V8 JVM clang gcc icc ifort Dart VM 0 200
400 600 800 1000 1200 1400 1600 1370 420 600 430 480 640 408 fibo(40) の実行時間 実行時間 (ms)
11.
icc??fibo(40)?480?ms V8 JVM clang gcc icc ifort Dart VM 0 200
400 600 800 1000 1200 1400 1600 1370 420 600 430 480 640 408 fibo(40) の実行時間 実行時間 (ms)
12.
ifort??fibo(40)?640?ms V8 JVM clang gcc icc ifort Dart VM 0 200
400 600 800 1000 1200 1400 1600 1370 420 600 430 480 640 408 fibo(40) の実行時間 実行時間 (ms)
13.
Dart?VM??fibo(40)?408?ms V8 JVM clang gcc icc ifort Dart VM 0 200
400 600 800 1000 1200 1400 1600 1370 420 600 430 480 640 408 fibo(40) の実行時間 実行時間 (ms)
14.
これだけ見ると Dart?VM は JVM
や C と ほぼ同等の速度になりつつある。 ※ ただし Fibonacchi 数に限る?
15.
Dart の公式ベンチ 緑が
Dart?VM 、黄色が V8 縦軸がスコア、横軸が Timestamp
16.
Dart の公式ベンチ DeltaBlue
Dart?VM は V8 の 2 倍のスコア
17.
Dart の公式ベンチマーク Richards
Dart?VM は V8 の 1.67 倍のスコア
18.
Dart の公式ベンチマーク Tracer
Dart?VM は V8 の 2.16 倍のスコア
19.
DeltaBlue で JVM
と比较してみた
20.
DeltaBlue で JVM
と比较してみた Dart?VM が 438 で 10% くらい速い。
21.
InfoQ:Latest?Dart?VM?Beats?JVM?in? DeltaBlue?Benchmark 起動速度は Dart?VM
が速い ピーク速度は JVM が速い iteration JVM6 (ms) Dart VM(ms) 差 (ms) 10x 9.3 5.9 3.4 100x 2.96 1.24 1.72 1000x 0.898 0.636 0.262 10000x 0.5229 0.536 -0.0131 100000x 0.48908 0.55263 -0.06355
22.
Dart?VM のゴール
23.
速さの秘密は Snapshots JIT?Compiler?Optimization
24.
Snapshot の仕組み Dart?VM
起動時を FullSnapshot し バイナリに埋め込む。 +400kbyte Core の I/O と Scan が不要 100,000micros??>?100micros
25.
Snapshots の有無を比較 dart dart_no_snapshot 0 100
200 300 400 500 600 410 410 430 540 fibo(40) の実行時間 (ms) fibo time 130ms 20ms 起動が 1/6
26.
JIT?Compile Dart VM Isolate HeapJITCompiler Dart Src ObjectPool Initialize JITCompile GC Code
27.
Runtime?Feedback Dart VM Isolate HeapJITCompiler Dart Src ObjectPool Execution GC Code Log Type
feedback
28.
JIT?Compiler?Optimization Dart VM Isolate HeapJITCompiler Dart Src ObjectPool GC Code Log Execution OptimizedCode Optimizer Optimize
29.
DeltaBlue?2012/07 ~ 2012/11 Optimizer
の追加 SelectRepresentation, TypePropagaotr Inlining
30.
DeltaBlue?2012/11 ~ 2013/02
31.
DeltaBlue?2013/01 ~ 2013/05(V8
の 2 倍 ) Field Type Feedback Polymorphic Inlining
32.
Richards?2012/07 ~ 2012/11 Optimizer
の追加 SelectRepresentation, TypePropagaotr Inlining
33.
Richards?2012/09 ~ 2012/12 RedundantLoadElimination
34.
Richards?2013/01 ~ 2013/05(V8
の 1.67 倍 ) Branch Optimization Compare Optimizetion Field Type Feedback
35.
Tracer?2013/03 ~ 2013/05(V8
の 2.16 倍 ) Store Sinking の追加
36.
Try?Dart?VM ! もっと先へーー《加速》したくはないか VM
37.
測定環境 OS:Ubuntu?12 build/target:ia32 cpu:core?i7?2600k Dart?VM?version bleeding_edge?r22719(2013/05/16)
38.
補足 Dart?VM?beeding_edge?r22611(2013/05/16) V8?trunk(2013/05/12)?3.18.6
JVM7?Hotstpot?1.7.0_15(Option: なし ) clang3.3RC1?trunk(Option:?O3) gcc?4.6.3(Option:?Ofast) icc/ifort?13.1.1(Option:?fast)
Download