SlideShare a Scribd company logo
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>
皆さん Dart VM ご存知ですか?
2011/11 の Dart VM
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 倍
皆さん Dart VM に
興味が沸いてきませんか?
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);
}
}
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)
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)
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)
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)
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)
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)
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)
これだけ見ると
Dart VM は JVM や C と
ほぼ同等の速度になりつつある。
※ ただし Fibonacchi 数に限る?
Dart の公式ベンチ
 緑が Dart VM 、黄色が V8
 縦軸がスコア、横軸が Timestamp
Dart の公式ベンチ DeltaBlue
 Dart VM は V8 の 2 倍のスコア
Dart の公式ベンチマーク Richards
 Dart VM は V8 の 1.67 倍のスコア
Dart の公式ベンチマーク Tracer
 Dart VM は V8 の 2.16 倍のスコア
DeltaBlue で JVM と比較してみた
DeltaBlue で JVM と比較してみた
 Dart VM が 438 で 10% くらい速い。
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
Dart VM のゴール
速さの秘密は
 Snapshots
 JIT Compiler Optimization
Snapshot の仕組み
 Dart VM 起動時を FullSnapshot し
バイナリに埋め込む。 +400kbyte
 Core の I/O と Scan が不要
100,000micros ­> 100micros
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
JIT Compile
Dart VM
Isolate
HeapJITCompiler
Dart Src
ObjectPool
Initialize
JITCompile
GC
Code
Runtime Feedback
Dart VM
Isolate
HeapJITCompiler
Dart Src
ObjectPool
Execution
GC
Code
Log
Type feedback
JIT Compiler Optimization
Dart VM
Isolate
HeapJITCompiler
Dart Src
ObjectPool
GC
Code
Log
Execution
OptimizedCode
Optimizer
Optimize
DeltaBlue 2012/07 ~ 2012/11
Optimizer の追加
SelectRepresentation,
TypePropagaotr
Inlining
DeltaBlue 2012/11 ~ 2013/02
DeltaBlue 2013/01 ~ 2013/05(V8 の 2 倍 )
Field Type Feedback
Polymorphic Inlining
Richards 2012/07 ~ 2012/11
Optimizer の追加
SelectRepresentation,
TypePropagaotr
Inlining
Richards 2012/09 ~ 2012/12
RedundantLoadElimination
Richards 2013/01 ~ 2013/05(V8 の 1.67 倍 )
Branch Optimization
Compare Optimizetion
Field Type Feedback
Tracer 2013/03 ~ 2013/05(V8 の 2.16 倍 )
Store Sinking の追加
Try Dart VM !
もっと先へーー《加速》したくはないか
VM
測定環境
 OS:Ubuntu 12
build/target:ia32
cpu:core i7 2600k
 Dart VM version
bleeding_edge r22719(2013/05/16)
補足
 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)

More Related Content

PDF
JVM的な何か@JVM Operation Casual Talk
PDF
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
PPTX
java.lang.OutOfMemoryError #渋谷java
PDF
Unified JVM Logging
PDF
JVM のいろはにほ #javajo
PPTX
Metaspace
PPTX
機械学習 / Deep Learning 大全 (4) GPU編
PDF
HeapStats: Introduction and Technical Preview
JVM的な何か@JVM Operation Casual Talk
Concurrent Mark-Sweep Garbage Collection #jjug_ccc
java.lang.OutOfMemoryError #渋谷java
Unified JVM Logging
JVM のいろはにほ #javajo
Metaspace
機械学習 / Deep Learning 大全 (4) GPU編
HeapStats: Introduction and Technical Preview

What's hot (14)

PDF
Java 10でぼくたちの生活はどう変わるの?
PDF
Volta は、Chainer で使えるの?
PDF
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
PDF
Chainer で Tensor コア (fp16) を使いこなす
PPTX
Java トラブル解析支援ツール HeapStats のご紹介
PPTX
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
PDF
HeapStats @ Seasar Conference 2015 LT
PDF
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
PPTX
Java でつくる 低レイテンシ実装の技巧
PDF
TDDについて
PDF
Fxxking gc.c
PDF
Jvm operation casual talks
PDF
Jvm internal
PPTX
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Java 10でぼくたちの生活はどう変わるの?
Volta は、Chainer で使えるの?
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Chainer で Tensor コア (fp16) を使いこなす
Java トラブル解析支援ツール HeapStats のご紹介
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
HeapStats @ Seasar Conference 2015 LT
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
Java でつくる 低レイテンシ実装の技巧
TDDについて
Fxxking gc.c
Jvm operation casual talks
Jvm internal
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Ad

Viewers also liked (20)

PPTX
(NEU) Beacon Global - Carlsberg
PPS
Viena - Madame Tussaud
PDF
Sigue tuestrella
PDF
Real Estate The Woodlands | Market Report Nov. 2012
PDF
Wassup Ogilvy Asia's Cultural Trends Report
PPT
Tema 8 los servicios
PDF
BrandZ Top 100 Most Valuable Chinese Brands (Chinese Version)
PPT
Microphone
PPTX
Aspergillosis Patient Support Meeting July 2011 - Sue Howard
PDF
101 lecture 15 monopoly
PDF
Lecture 9 saving investment and the financial system
PDF
17400590 559800136-m03 sp2012
PPTX
LeaderSupportProject20110418
PPT
Template chinese version
PPTX
Eco-code - RECYCLING- Aradippou
PPS
Let it be - Beatles
PDF
Cantinart
PPT
Some of the latest progress for the prevention, diagnosis and treatment of as...
(NEU) Beacon Global - Carlsberg
Viena - Madame Tussaud
Sigue tuestrella
Real Estate The Woodlands | Market Report Nov. 2012
Wassup Ogilvy Asia's Cultural Trends Report
Tema 8 los servicios
BrandZ Top 100 Most Valuable Chinese Brands (Chinese Version)
Microphone
Aspergillosis Patient Support Meeting July 2011 - Sue Howard
101 lecture 15 monopoly
Lecture 9 saving investment and the financial system
17400590 559800136-m03 sp2012
LeaderSupportProject20110418
Template chinese version
Eco-code - RECYCLING- Aradippou
Let it be - Beatles
Cantinart
Some of the latest progress for the prevention, diagnosis and treatment of as...
Ad

Similar to Dart VM Performance (20)

PDF
2014 dart flight school in Tokyo
PPT
Benchmarks of Perl Web Application Frameworks
PPTX
DLLab 2018 - Azure Machine Learning update
PPTX
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
PPTX
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
PDF
20201127 .NET 5
PDF
Dart 1.1
PPTX
Master of DR!バックアップ機能強化で進化を遂げた最新Zerto7をご紹介!
PPTX
Java 9で進化する診断ツール
PDF
アドテク×Scala×パフォーマンスチューニング
PDF
[TL07] エンタープライズ基準で " 丁寧に " .NET Framework のバージョンアップしていくコツ
PDF
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
PPTX
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PDF
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
PDF
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太
PDF
VMレプリケーション なら 「オンプレ」「クラウド」自由自在 【Zerto(ゼルト)】とは?
PDF
OSC 2012 Hokkaido でのプレゼン資料
PDF
Dalvik仮想マシンのアーキテクチャ 改訂版
PDF
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
2014 dart flight school in Tokyo
Benchmarks of Perl Web Application Frameworks
DLLab 2018 - Azure Machine Learning update
ServiceMesh と仲間たち 〜Istio & Conduit & Linkerd〜 @Cloud Native Meetup Tokyo #1
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)
20201127 .NET 5
Dart 1.1
Master of DR!バックアップ機能強化で進化を遂げた最新Zerto7をご紹介!
Java 9で進化する診断ツール
アドテク×Scala×パフォーマンスチューニング
[TL07] エンタープライズ基準で " 丁寧に " .NET Framework のバージョンアップしていくコツ
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太
VMレプリケーション なら 「オンプレ」「クラウド」自由自在 【Zerto(ゼルト)】とは?
OSC 2012 Hokkaido でのプレゼン資料
Dalvik仮想マシンのアーキテクチャ 改訂版
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~

More from nothingcosmos (6)

PDF
Source Code of Dart
PDF
DartVM on Android
PDF
Adaptive optimization of JIT compiler
PDF
OpenJDK HotSpot C1Compiler Overview
PDF
X86opti01 nothingcosmos
ODP
LLVM overview 20110122
Source Code of Dart
DartVM on Android
Adaptive optimization of JIT compiler
OpenJDK HotSpot C1Compiler Overview
X86opti01 nothingcosmos
LLVM overview 20110122

Dart VM Performance