SlideShare a Scribd company logo
© 2020 NTT DATA Corporation
GraalVMを3つの主機能から眺めてみよう
2020年10月22日 Oracle Groundbreakers APAC Virtual Tour 2020
株式会社NTTデータ 技術開発本部
阪田 浩一
© 2020 NTT DATA Corporation 2
自己紹介
• 阪田 浩一(さかた -)
• 通称 じゅくちょー
• JVMになりたい人
• NTTデータでJava/OpenJDK + GraalVMの
研究開発とそのサポート業に従事しています
• OpenJDK Author
jyukutyo
© 2020 NTT DATA Corporation 3
このセッションの役割
GraalVMの
真の力に目覚める!
(3つの主機能について、
その開発経緯を踏まえながら
概要を理解する)
© 2020 NTT DATA Corporation 4
真の力…?
GraalVMって、
ネイティブイメージ作って
起動を速くする
ツールじゃないの…??
© 2020 NTT DATA Corporation 5
GraalVMの3つの主機能
1. 新JITコンパイラによるパフォーマンス向上
2. JavaScript、Ruby、Pythonといった
(JVM言語でない)言語を実行可能
3. アプリケーションをネイティブイメージにして
JVMなしで実行可能
(JVMでの実行時とは異なる特性を持つ)
© 2020 NTT DATA Corporation 6
結論として
GraalVMは
ネイティブイメージ生成用ツール
ではありません
© 2020 NTT DATA Corporation 7
GraalVMで検索するとネイティブイメージのことばかりなので…
このセッションでは
JITコンパイラと多言語実行に
比重を置きます
© 2020 NTT DATA Corporation
1. 新JITコンパイラ
© 2020 NTT DATA Corporation 9
GraalVM JITコンパイラは
Javaで書かれた
新しいJITコンパイラ
© 2020 NTT DATA Corporation 10
そのJITコンパイラを
HotSpot VM上に搭載
© 2020 NTT DATA Corporation 11
GraalVMとHotSpot VM
• GraalVMはHotSpot VMがベース
HotSpot VM
Compiler Interface
C2C1
HotSpot VM
C++
GraalVM
Compiler
Interface
GraalVM
JITコンパイラC1
HotSpot VM
JVMCI
Java
© 2020 NTT DATA Corporation 12
GraalVMは
JVMの機能を
すべて包含します
© 2020 NTT DATA Corporation 13
既存のJVMにできることは
すべてできます
© 2020 NTT DATA Corporation 14
Oracle Labsが
開発
© 2020 NTT DATA Corporation 15
GraalVMの2つのエディション
https://www.graalvm.org/
© 2020 NTT DATA Corporation 16
GraalVMの2つのエディション
1. Community Edition (CE)
• OSS (クラスパス例外付き GPL v2)
2. Enterprise Edition (EE)
• ライセンス契約が必要 (評価は無償)
• CEより実行パフォーマンスがよい
• CEよりネイティブコードのセキュリティを強化している
© 2020 NTT DATA Corporation 17
以降は
CEを前提にします
© 2020 NTT DATA Corporation 18
GraalVM JITコンパイラの
利点は?
© 2020 NTT DATA Corporation 19
アロケーションの多い
アプリケーションには、
GraalVM JITコンパイラが
有効
© 2020 NTT DATA Corporation 20
たとえば
リアクティブストリーム
で構築したものや
© 2020 NTT DATA Corporation 21
Scalaなど
関数型プログラミング
モデルで構築したもの
© 2020 NTT DATA Corporation 22
C2コンパイラより
パフォーマンスが
向上する場合がある
© 2020 NTT DATA Corporation 23
ベンチマーク
https://renaissance.dev/
Higher is better
© 2020 NTT DATA Corporation 24
Twitter社の事例
• OpenJDKベースの独自JDKにGraalVM JITコンパイラを
バックポート
• 2017年ですでに本番環境で活用
• 数千台のサーバ、Scalaアプリケーション
• サーバリソースを削減し、台数削減
• 大きなコスト削減になった
• 事例発表動画
• Twitter’s Quest for a Wholly Graal Runtime
(JavaOne 2017) https://www.youtube.com/watch?v=G-vlQaPMAxg
© 2020 NTT DATA Corporation 25
GraalVM JITコンパイラの利点
1. Javaで書かれている
• C++で書かれたC2コンパイラは
長年の変更で複雑化
• 新規に開発することで新機能追加、設計改善
• Javaに変更することで開発参加の門戸を広く
• 以前はこのJITコンパイラをGraalと呼んでいた
© 2020 NTT DATA Corporation 26
参考:OpenJDKにもポートされている(Experimental)
http://openjdk.java.net/jeps/317
© 2020 NTT DATA Corporation 27
GraalVM JITコンパイラの利点
2. このJITコンパイラ向けに作られた
言語実装用フレームワーク Truffle がある
• このライブラリを用いて実装した言語は、
すべてGraalVM上で実行できる
• トラフル (英)、トリュフ (仏)
© 2020 NTT DATA Corporation
2. 多言語実行環境
© 2020 NTT DATA Corporation 29
GraalVM JITコンパイラの利点
2. このJITコンパイラ向けに作られた
言語実装用フレームワーク Truffle がある
• このライブラリを用いて実装した言語は、
すべてGraalVM上で実行できる
• トラフル (英)、トリュフ (仏)
© 2020 NTT DATA Corporation 30
サポートする言語
GraalVM バージョン20.1.0時点のもの
言語 プロダクト名 ステータス 対応バージョン
Java - - OpenJDK 8もしくは11から選択
JavaScript graaljs GA ECMAScript 2020準拠
Ruby TruffleRuby Experimental 2.6.2ベース
R FastR Experimental 3.6.1ベース
Python GraalPython Experimental 3.7ベース
WebAssembly GraalWasm Experimental WebAssembly MVP仕様
LLVM Sulong Experimental bitcodeバージョン3.8~9.0を実行可能
© 2020 NTT DATA Corporation 31
(なお、Java 11で
Nashornは非推奨に
なりました)
© 2020 NTT DATA Corporation 32
Truffleでの言語実装
HotSpot VM
JVMCI
GraalVM JITコンパイラ
JVM Lang Truffle
LLVMJS R Ruby
C C++
Fortran
Interpreter
© 2020 NTT DATA Corporation 33
言語実装の仕組み
対象言語の
ASTインタプリタを
Truffle APIを用いて
Javaで実装する
© 2020 NTT DATA Corporation 34
他言語でも高パフォーマンス
対象言語コードのASTと
インタプリタの両方を
JITコンパイラに評価させ
高性能のコードを生成
© 2020 NTT DATA Corporation 35
ゴールドマン・サックス社の事例
• 1990年代初め、独自に言語を開発
• 現在までコードが増え続ける
• 言語自体の運用開発が課題に
© 2020 NTT DATA Corporation 36
ゴールドマン・サックス社の事例
• その言語をTruffleベースに移行
• 他言語との相互呼び出しが可能に
• メトリクス取得やデバッグが容易に
• 実行パフォーマンスが向上
• 事例発表動画
• One VM to Rule Them All? Lessons Learned with
Truffle and Graal (Oracle Code One 2018)
https://www.youtube.com/watch?v=MUECwHdr07Q
© 2020 NTT DATA Corporation 37
究極的には
自分で実装した
プログラミング言語を
GraalVMで実行できる
© 2020 NTT DATA Corporation 38
言語実装サンプル
• GraalVMのリポジトリ内
• SimpleLanguage
• https://github.com/graalvm/simplelanguage
• Simpleとあるけれど、読むのは簡単ではない
© 2020 NTT DATA Corporation 39
私もやってみました(古いバージョンでの実装です)
https://github.com/jyukutyo/JVM-Math-Language
© 2020 NTT DATA Corporation 40
サポートする言語
GraalVM バージョン20.1.0時点のもの
言語 プロダクト名 ステータス 対応バージョン
Java - - OpenJDK 8もしくは11から選択
JavaScript graaljs GA ECMAScript 2020準拠
Ruby TruffleRuby Experimental 2.6.2ベース
R FastR Experimental 3.6.1ベース
Python GraalPython Experimental 3.7ベース
WebAssembly GraalWasm Experimental WebAssembly MVP仕様
LLVM Sulong Experimental bitcodeバージョン3.8~9.0を実行可能
© 2020 NTT DATA Corporation 41
参考:GraalPythonの検証
• 実プロジェクトでの利用は(まだ)現実的ではない
• C拡張しているライブラリの利用するとエラーが発生する可能性があり、
確実性に不安が残る
• Pythonコードの実行が長い
たとえばインポート文の処理に時間がかかる
• Pandasであれば、インポートが数十秒単位であった
• SSLをサポートしておらず、
PythonコードでのHTTPSのAPI呼び出しはできない
• 20.2でpycファイルによるキャッシュ機能が導入されたが、
パフォーマンスは不十分である
© 2020 NTT DATA Corporation 42
デモ(Python3とGraalPythonでのPandasの実行)
© 2020 NTT DATA Corporation 43
Pythonに関しては
やはりまだ
Experimental
© 2020 NTT DATA Corporation 44
単に各言語を
実行できるだけでは
ない
© 2020 NTT DATA Corporation 45
Interoperability
パフォーマンスを大幅に
低下させることなく、
言語間で
相互呼び出しができる
© 2020 NTT DATA Corporation 46
Java <-> Truffle言語
はもちろん
© 2020 NTT DATA Corporation 47
Truffle言語間でも
(Ruby <-> JavaScriptなど)
© 2020 NTT DATA Corporation 48
GraalVMのビジョン
パフォーマンスを
犠牲にせず、
言語間の抽象化をする
© 2020 NTT DATA Corporation 49
あの処理、
別の言語のライブラリを
使うとすぐできるのに…
© 2020 NTT DATA Corporation 50
Javaから先ほどのPandasコードを呼び出す例
© 2020 NTT DATA Corporation 51
開発ツールの
サポートもある
© 2020 NTT DATA Corporation 52
Google Chrome DevToolsでのデバッグ
© 2020 NTT DATA Corporation 53
デモ(Chrome DevToolsでのデバッグ)
© 2020 NTT DATA Corporation 54
Graal VisualVM
© 2020 NTT DATA Corporation
3. ネイティブイメージ生成機能
© 2020 NTT DATA Corporation 56
GraalVMのネイティブイメージ生成
• ネイティブイメージ
(実行可能なバイナリ) を生成する機能
• 生成したイメージ (ファイル) だけで実行可能
• つまり、起動にJVM (JDK/JRE) が不要
© 2020 NTT DATA Corporation 57
Oracle Database
• ユーザ定義関数をJavaで作成できる
しかし、
• GraalVM自体をデータベースに組み込めば、
Javaはもちろん、他言語も使える
• 機能の更新をGraalVM側に任せられる
© 2020 NTT DATA Corporation 58
Oracle Databaseに
GraalVMを組み込む
© 2020 NTT DATA Corporation 59
Oracle Databaseへ組み込むには
• JVMが課題
• サイズが大きい
• 初期化処理が長い
• メモリ使用量が大きい
• そのままではデータベースでの利用はできない
© 2020 NTT DATA Corporation 60
GraalVM自体を
ネイティブイメージに
する!
© 2020 NTT DATA Corporation 61
ネイティブイメージにすると
• JVMが不要
• サイズが小さく済む
• 起動時間が短くなる
• メモリ使用量が少なくなる
• ただし、同じプラットフォームでしか動作しない
© 2020 NTT DATA Corporation 62
参考:Oracle Database MLE
• MLE: Multilingal Engine
• https://www.oracle.com/technetwork/database/multilingual-
engine/overview/index.html
select
validator.isEmail('alice@example.com’)
from dual;
© 2020 NTT DATA Corporation 63
こうした経緯で開発した
ネイティブイメージ
生成機能が
GraalVMの機能の1つ
となった
© 2020 NTT DATA Corporation 64
ネイティブイメージの現状
• Experimental
• サポートプラットフォーム
• x86 64ビットシステム
• Linux、macOS、Windows
© 2020 NTT DATA Corporation 65
ネイティブイメージ生成プロセス
アプリケーション
ライブラリ
JDK
SubstrateVM
下記の繰り返し:
解析ポイント
↓
初期化処理実行
↓
ヒープのスナップショット生成
ELFファイル
コード
(textセクション)
イメージヒープ
(dataセクション)
© 2020 NTT DATA Corporation 66
生成時に
初期化処理を実行し、
起動時間を
短縮する
© 2020 NTT DATA Corporation 67
デモ(ネイティブイメージ生成)
© 2020 NTT DATA Corporation 68
ネイティブイメージ対応フレームワーク
• Micronaut
• Quarkus
• Helidon
• Spring Framework, Bootも対応作業中
(現在はExperimental)
© 2020 NTT DATA Corporation 69
ネイティブイメージのメリットまとめ
• 起動時間が短くなる
• メモリ使用量が少なくなる
• サイズが小さくなる
© 2020 NTT DATA Corporation 70
どんなアプリケーション
でも、
ネイティブイメージに
する方がよいのか?
© 2020 NTT DATA Corporation 71
JITコンパイル (JVM)
と
AOTコンパイル (GraalVM)
© 2020 NTT DATA Corporation 72
GraalVMのネイティブイメージ機能
• AOT(Ahead-of-Time:事前)コンパイル
「実行前」に
機械語へコンパイル!
© 2020 NTT DATA Corporation 73
JITコンパイル
「実行中」に
機械語へコンパイル!
JVM
© 2020 NTT DATA Corporation 74
超簡略化して考えると…
❌
「実行中」に
機械語へコンパイル!
「実行前」に
機械語へコンパイル!
© 2020 NTT DATA Corporation 75
同じようなことを
やっているように
見えませんか?
© 2020 NTT DATA Corporation 76
2つのコンパイラの処理は
重なる部分があるため、
JITコンパイラを元にして
ネイティブイメージ生成機能を
作ることができた
© 2020 NTT DATA Corporation 77
https://openjdk.java.net/jeps/295
© 2020 NTT DATA Corporation 78
ネイティブコンパイルを採用するトレードオフ
• 事前にコンパイルしたものを使うので、
利用できない機能が出てくる
• コードのinstrumentation
• 動的な再最適化
• 性能のトレードオフ
https://twitter.com/thomaswue/status/1145603781108928513
© 2020 NTT DATA Corporation 79
ネイティブイメージが適切なケース
• FaaS
• 起動してすぐに終了する
• クラウドで実行する
大規模アプリケーション
• リソースを節約し、コストを削減する
© 2020 NTT DATA Corporation 80
GraalVMの2つのモード
• JITモード
• JVMとGraalVM JITコンパイラで
アプリケーションを実行
• AOTモード
• ネイティブイメージを生成し、JVMなしで
アプリケーションを実行
• どちらのモードのことなのか、意識する
© 2020 NTT DATA Corporation
4. GraalVMとOpenJDK
© 2020 NTT DATA Corporation 82
Project Metropolis
OpenJDK: Metropolis https://openjdk.java.net/projects/metropolis/
© 2020 NTT DATA Corporation 83
JVMを
再実装する!
(ランタイムの重要な部分中心)
© 2020 NTT DATA Corporation 84
再実装とは?
C++の既存実装
↓
Javaで再実装
© 2020 NTT DATA Corporation 85
Project Metropolisの現在
• 現在:Java 15ベースのEAビルドがある
• https://jdk.java.net/metropolis/
• GraalVM JITコンパイラがデフォルトコンパイラ
• ネイティブコンパイル済み
• 次にどのコンポーネントがJava on Javaとなるのかは明らかでない
• たとえばGCは難しいだろうと言われている
© 2020 NTT DATA Corporation 86
JITコンパイラが
Javaで書かれていると
© 2020 NTT DATA Corporation 87
JITコンパイラの
Javaコードも
JITコンパイルする
必要がある
© 2020 NTT DATA Corporation 88
つまり
アプリケーション起動時に
その分の時間がかかる
© 2020 NTT DATA Corporation 89
JITコンパイラの
コードをAOTコンパイル
(ネイティブコンパイル)
してしまえば
ある程度解決できる
© 2020 NTT DATA Corporation 90
JITコンパイラコードのコンパイル
JavaでJITコンパイラを書く
↓
そうなるとJITコンパイラのJavaコードを
JITコンパイルすることが必要
↓
あらかじめJITコンパイラのJavaコードを
ネイティブコンパイルしておく
(libgraal/libjvmcicompiler)
© 2020 NTT DATA Corporation 91
JVMとGraalVMは
互いに影響を
及ぼし合っている
© 2020 NTT DATA Corporation 92
ただし、互いに
独立した開発
となっている
© 2020 NTT DATA Corporation 93
GraalVMの3つの主機能
1. 新JITコンパイラによるパフォーマンス向上
2. JavaScript、Ruby、Pythonといった
(JVM言語でない)言語を実行可能
3. アプリケーションをネイティブイメージにして
JVMなしで実行可能
(JVMでの実行時とは異なる特性を持つ)
みんなのJava OpenJDKから始まる大変革期! https://gihyo.jp/book/2020/978-4-297-11199-1
© 2020 NTT DATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です

More Related Content

What's hot

Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
Koichi Sakata
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
Shinji Takao
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
Metaspace
MetaspaceMetaspace
Metaspace
Yasumasa Suenaga
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
 

What's hot (20)

Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
 
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
GraalVM を普通の Java VM として使う ~クラウドベンチマークなどでの比較~
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
Metaspace
MetaspaceMetaspace
Metaspace
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 

Similar to GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)

より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
Shinji Takao
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and docker
Hiroshi Miura
 
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
オラクルエンジニア通信
 
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
 
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
オラクルエンジニア通信
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and docker
Hiroshi Miura
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
apkiban
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
Yuji Kubota
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
NTT DATA Technology & Innovation
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
Koichi Sakata
 
Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤
NTT Communications Technology Development
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
GAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsGAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) Ops
Miniascape
 
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
NTT Communications Technology Development
 

Similar to GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料) (20)

より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and docker
 
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
 
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
 
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
【Oracle Cloud ウェビナー】WebLogic Serverのご紹介
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
"Up" with vagrant and docker
"Up" with vagrant and docker"Up" with vagrant and docker
"Up" with vagrant and docker
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
 
HeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical PreviewHeapStats: Introduction and Technical Preview
HeapStats: Introduction and Technical Preview
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
 
Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
GAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsGAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) Ops
 
GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較GPU Container as a Service を実現するための最新OSS徹底比較
GPU Container as a Service を実現するための最新OSS徹底比較
 

More from NTT DATA Technology & Innovation

YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 

Recently uploaded

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 

Recently uploaded (15)

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 

GraalVMを3つの主機能から眺めてみよう(Oracle Groundbreakers APAC Virtual Tour 2020 講演資料)

  • 1. © 2020 NTT DATA Corporation GraalVMを3つの主機能から眺めてみよう 2020年10月22日 Oracle Groundbreakers APAC Virtual Tour 2020 株式会社NTTデータ 技術開発本部 阪田 浩一
  • 2. © 2020 NTT DATA Corporation 2 自己紹介 • 阪田 浩一(さかた -) • 通称 じゅくちょー • JVMになりたい人 • NTTデータでJava/OpenJDK + GraalVMの 研究開発とそのサポート業に従事しています • OpenJDK Author jyukutyo
  • 3. © 2020 NTT DATA Corporation 3 このセッションの役割 GraalVMの 真の力に目覚める! (3つの主機能について、 その開発経緯を踏まえながら 概要を理解する)
  • 4. © 2020 NTT DATA Corporation 4 真の力…? GraalVMって、 ネイティブイメージ作って 起動を速くする ツールじゃないの…??
  • 5. © 2020 NTT DATA Corporation 5 GraalVMの3つの主機能 1. 新JITコンパイラによるパフォーマンス向上 2. JavaScript、Ruby、Pythonといった (JVM言語でない)言語を実行可能 3. アプリケーションをネイティブイメージにして JVMなしで実行可能 (JVMでの実行時とは異なる特性を持つ)
  • 6. © 2020 NTT DATA Corporation 6 結論として GraalVMは ネイティブイメージ生成用ツール ではありません
  • 7. © 2020 NTT DATA Corporation 7 GraalVMで検索するとネイティブイメージのことばかりなので… このセッションでは JITコンパイラと多言語実行に 比重を置きます
  • 8. © 2020 NTT DATA Corporation 1. 新JITコンパイラ
  • 9. © 2020 NTT DATA Corporation 9 GraalVM JITコンパイラは Javaで書かれた 新しいJITコンパイラ
  • 10. © 2020 NTT DATA Corporation 10 そのJITコンパイラを HotSpot VM上に搭載
  • 11. © 2020 NTT DATA Corporation 11 GraalVMとHotSpot VM • GraalVMはHotSpot VMがベース HotSpot VM Compiler Interface C2C1 HotSpot VM C++ GraalVM Compiler Interface GraalVM JITコンパイラC1 HotSpot VM JVMCI Java
  • 12. © 2020 NTT DATA Corporation 12 GraalVMは JVMの機能を すべて包含します
  • 13. © 2020 NTT DATA Corporation 13 既存のJVMにできることは すべてできます
  • 14. © 2020 NTT DATA Corporation 14 Oracle Labsが 開発
  • 15. © 2020 NTT DATA Corporation 15 GraalVMの2つのエディション https://www.graalvm.org/
  • 16. © 2020 NTT DATA Corporation 16 GraalVMの2つのエディション 1. Community Edition (CE) • OSS (クラスパス例外付き GPL v2) 2. Enterprise Edition (EE) • ライセンス契約が必要 (評価は無償) • CEより実行パフォーマンスがよい • CEよりネイティブコードのセキュリティを強化している
  • 17. © 2020 NTT DATA Corporation 17 以降は CEを前提にします
  • 18. © 2020 NTT DATA Corporation 18 GraalVM JITコンパイラの 利点は?
  • 19. © 2020 NTT DATA Corporation 19 アロケーションの多い アプリケーションには、 GraalVM JITコンパイラが 有効
  • 20. © 2020 NTT DATA Corporation 20 たとえば リアクティブストリーム で構築したものや
  • 21. © 2020 NTT DATA Corporation 21 Scalaなど 関数型プログラミング モデルで構築したもの
  • 22. © 2020 NTT DATA Corporation 22 C2コンパイラより パフォーマンスが 向上する場合がある
  • 23. © 2020 NTT DATA Corporation 23 ベンチマーク https://renaissance.dev/ Higher is better
  • 24. © 2020 NTT DATA Corporation 24 Twitter社の事例 • OpenJDKベースの独自JDKにGraalVM JITコンパイラを バックポート • 2017年ですでに本番環境で活用 • 数千台のサーバ、Scalaアプリケーション • サーバリソースを削減し、台数削減 • 大きなコスト削減になった • 事例発表動画 • Twitter’s Quest for a Wholly Graal Runtime (JavaOne 2017) https://www.youtube.com/watch?v=G-vlQaPMAxg
  • 25. © 2020 NTT DATA Corporation 25 GraalVM JITコンパイラの利点 1. Javaで書かれている • C++で書かれたC2コンパイラは 長年の変更で複雑化 • 新規に開発することで新機能追加、設計改善 • Javaに変更することで開発参加の門戸を広く • 以前はこのJITコンパイラをGraalと呼んでいた
  • 26. © 2020 NTT DATA Corporation 26 参考:OpenJDKにもポートされている(Experimental) http://openjdk.java.net/jeps/317
  • 27. © 2020 NTT DATA Corporation 27 GraalVM JITコンパイラの利点 2. このJITコンパイラ向けに作られた 言語実装用フレームワーク Truffle がある • このライブラリを用いて実装した言語は、 すべてGraalVM上で実行できる • トラフル (英)、トリュフ (仏)
  • 28. © 2020 NTT DATA Corporation 2. 多言語実行環境
  • 29. © 2020 NTT DATA Corporation 29 GraalVM JITコンパイラの利点 2. このJITコンパイラ向けに作られた 言語実装用フレームワーク Truffle がある • このライブラリを用いて実装した言語は、 すべてGraalVM上で実行できる • トラフル (英)、トリュフ (仏)
  • 30. © 2020 NTT DATA Corporation 30 サポートする言語 GraalVM バージョン20.1.0時点のもの 言語 プロダクト名 ステータス 対応バージョン Java - - OpenJDK 8もしくは11から選択 JavaScript graaljs GA ECMAScript 2020準拠 Ruby TruffleRuby Experimental 2.6.2ベース R FastR Experimental 3.6.1ベース Python GraalPython Experimental 3.7ベース WebAssembly GraalWasm Experimental WebAssembly MVP仕様 LLVM Sulong Experimental bitcodeバージョン3.8~9.0を実行可能
  • 31. © 2020 NTT DATA Corporation 31 (なお、Java 11で Nashornは非推奨に なりました)
  • 32. © 2020 NTT DATA Corporation 32 Truffleでの言語実装 HotSpot VM JVMCI GraalVM JITコンパイラ JVM Lang Truffle LLVMJS R Ruby C C++ Fortran Interpreter
  • 33. © 2020 NTT DATA Corporation 33 言語実装の仕組み 対象言語の ASTインタプリタを Truffle APIを用いて Javaで実装する
  • 34. © 2020 NTT DATA Corporation 34 他言語でも高パフォーマンス 対象言語コードのASTと インタプリタの両方を JITコンパイラに評価させ 高性能のコードを生成
  • 35. © 2020 NTT DATA Corporation 35 ゴールドマン・サックス社の事例 • 1990年代初め、独自に言語を開発 • 現在までコードが増え続ける • 言語自体の運用開発が課題に
  • 36. © 2020 NTT DATA Corporation 36 ゴールドマン・サックス社の事例 • その言語をTruffleベースに移行 • 他言語との相互呼び出しが可能に • メトリクス取得やデバッグが容易に • 実行パフォーマンスが向上 • 事例発表動画 • One VM to Rule Them All? Lessons Learned with Truffle and Graal (Oracle Code One 2018) https://www.youtube.com/watch?v=MUECwHdr07Q
  • 37. © 2020 NTT DATA Corporation 37 究極的には 自分で実装した プログラミング言語を GraalVMで実行できる
  • 38. © 2020 NTT DATA Corporation 38 言語実装サンプル • GraalVMのリポジトリ内 • SimpleLanguage • https://github.com/graalvm/simplelanguage • Simpleとあるけれど、読むのは簡単ではない
  • 39. © 2020 NTT DATA Corporation 39 私もやってみました(古いバージョンでの実装です) https://github.com/jyukutyo/JVM-Math-Language
  • 40. © 2020 NTT DATA Corporation 40 サポートする言語 GraalVM バージョン20.1.0時点のもの 言語 プロダクト名 ステータス 対応バージョン Java - - OpenJDK 8もしくは11から選択 JavaScript graaljs GA ECMAScript 2020準拠 Ruby TruffleRuby Experimental 2.6.2ベース R FastR Experimental 3.6.1ベース Python GraalPython Experimental 3.7ベース WebAssembly GraalWasm Experimental WebAssembly MVP仕様 LLVM Sulong Experimental bitcodeバージョン3.8~9.0を実行可能
  • 41. © 2020 NTT DATA Corporation 41 参考:GraalPythonの検証 • 実プロジェクトでの利用は(まだ)現実的ではない • C拡張しているライブラリの利用するとエラーが発生する可能性があり、 確実性に不安が残る • Pythonコードの実行が長い たとえばインポート文の処理に時間がかかる • Pandasであれば、インポートが数十秒単位であった • SSLをサポートしておらず、 PythonコードでのHTTPSのAPI呼び出しはできない • 20.2でpycファイルによるキャッシュ機能が導入されたが、 パフォーマンスは不十分である
  • 42. © 2020 NTT DATA Corporation 42 デモ(Python3とGraalPythonでのPandasの実行)
  • 43. © 2020 NTT DATA Corporation 43 Pythonに関しては やはりまだ Experimental
  • 44. © 2020 NTT DATA Corporation 44 単に各言語を 実行できるだけでは ない
  • 45. © 2020 NTT DATA Corporation 45 Interoperability パフォーマンスを大幅に 低下させることなく、 言語間で 相互呼び出しができる
  • 46. © 2020 NTT DATA Corporation 46 Java <-> Truffle言語 はもちろん
  • 47. © 2020 NTT DATA Corporation 47 Truffle言語間でも (Ruby <-> JavaScriptなど)
  • 48. © 2020 NTT DATA Corporation 48 GraalVMのビジョン パフォーマンスを 犠牲にせず、 言語間の抽象化をする
  • 49. © 2020 NTT DATA Corporation 49 あの処理、 別の言語のライブラリを 使うとすぐできるのに…
  • 50. © 2020 NTT DATA Corporation 50 Javaから先ほどのPandasコードを呼び出す例
  • 51. © 2020 NTT DATA Corporation 51 開発ツールの サポートもある
  • 52. © 2020 NTT DATA Corporation 52 Google Chrome DevToolsでのデバッグ
  • 53. © 2020 NTT DATA Corporation 53 デモ(Chrome DevToolsでのデバッグ)
  • 54. © 2020 NTT DATA Corporation 54 Graal VisualVM
  • 55. © 2020 NTT DATA Corporation 3. ネイティブイメージ生成機能
  • 56. © 2020 NTT DATA Corporation 56 GraalVMのネイティブイメージ生成 • ネイティブイメージ (実行可能なバイナリ) を生成する機能 • 生成したイメージ (ファイル) だけで実行可能 • つまり、起動にJVM (JDK/JRE) が不要
  • 57. © 2020 NTT DATA Corporation 57 Oracle Database • ユーザ定義関数をJavaで作成できる しかし、 • GraalVM自体をデータベースに組み込めば、 Javaはもちろん、他言語も使える • 機能の更新をGraalVM側に任せられる
  • 58. © 2020 NTT DATA Corporation 58 Oracle Databaseに GraalVMを組み込む
  • 59. © 2020 NTT DATA Corporation 59 Oracle Databaseへ組み込むには • JVMが課題 • サイズが大きい • 初期化処理が長い • メモリ使用量が大きい • そのままではデータベースでの利用はできない
  • 60. © 2020 NTT DATA Corporation 60 GraalVM自体を ネイティブイメージに する!
  • 61. © 2020 NTT DATA Corporation 61 ネイティブイメージにすると • JVMが不要 • サイズが小さく済む • 起動時間が短くなる • メモリ使用量が少なくなる • ただし、同じプラットフォームでしか動作しない
  • 62. © 2020 NTT DATA Corporation 62 参考:Oracle Database MLE • MLE: Multilingal Engine • https://www.oracle.com/technetwork/database/multilingual- engine/overview/index.html select validator.isEmail('alice@example.com’) from dual;
  • 63. © 2020 NTT DATA Corporation 63 こうした経緯で開発した ネイティブイメージ 生成機能が GraalVMの機能の1つ となった
  • 64. © 2020 NTT DATA Corporation 64 ネイティブイメージの現状 • Experimental • サポートプラットフォーム • x86 64ビットシステム • Linux、macOS、Windows
  • 65. © 2020 NTT DATA Corporation 65 ネイティブイメージ生成プロセス アプリケーション ライブラリ JDK SubstrateVM 下記の繰り返し: 解析ポイント ↓ 初期化処理実行 ↓ ヒープのスナップショット生成 ELFファイル コード (textセクション) イメージヒープ (dataセクション)
  • 66. © 2020 NTT DATA Corporation 66 生成時に 初期化処理を実行し、 起動時間を 短縮する
  • 67. © 2020 NTT DATA Corporation 67 デモ(ネイティブイメージ生成)
  • 68. © 2020 NTT DATA Corporation 68 ネイティブイメージ対応フレームワーク • Micronaut • Quarkus • Helidon • Spring Framework, Bootも対応作業中 (現在はExperimental)
  • 69. © 2020 NTT DATA Corporation 69 ネイティブイメージのメリットまとめ • 起動時間が短くなる • メモリ使用量が少なくなる • サイズが小さくなる
  • 70. © 2020 NTT DATA Corporation 70 どんなアプリケーション でも、 ネイティブイメージに する方がよいのか?
  • 71. © 2020 NTT DATA Corporation 71 JITコンパイル (JVM) と AOTコンパイル (GraalVM)
  • 72. © 2020 NTT DATA Corporation 72 GraalVMのネイティブイメージ機能 • AOT(Ahead-of-Time:事前)コンパイル 「実行前」に 機械語へコンパイル!
  • 73. © 2020 NTT DATA Corporation 73 JITコンパイル 「実行中」に 機械語へコンパイル! JVM
  • 74. © 2020 NTT DATA Corporation 74 超簡略化して考えると… ❌ 「実行中」に 機械語へコンパイル! 「実行前」に 機械語へコンパイル!
  • 75. © 2020 NTT DATA Corporation 75 同じようなことを やっているように 見えませんか?
  • 76. © 2020 NTT DATA Corporation 76 2つのコンパイラの処理は 重なる部分があるため、 JITコンパイラを元にして ネイティブイメージ生成機能を 作ることができた
  • 77. © 2020 NTT DATA Corporation 77 https://openjdk.java.net/jeps/295
  • 78. © 2020 NTT DATA Corporation 78 ネイティブコンパイルを採用するトレードオフ • 事前にコンパイルしたものを使うので、 利用できない機能が出てくる • コードのinstrumentation • 動的な再最適化 • 性能のトレードオフ https://twitter.com/thomaswue/status/1145603781108928513
  • 79. © 2020 NTT DATA Corporation 79 ネイティブイメージが適切なケース • FaaS • 起動してすぐに終了する • クラウドで実行する 大規模アプリケーション • リソースを節約し、コストを削減する
  • 80. © 2020 NTT DATA Corporation 80 GraalVMの2つのモード • JITモード • JVMとGraalVM JITコンパイラで アプリケーションを実行 • AOTモード • ネイティブイメージを生成し、JVMなしで アプリケーションを実行 • どちらのモードのことなのか、意識する
  • 81. © 2020 NTT DATA Corporation 4. GraalVMとOpenJDK
  • 82. © 2020 NTT DATA Corporation 82 Project Metropolis OpenJDK: Metropolis https://openjdk.java.net/projects/metropolis/
  • 83. © 2020 NTT DATA Corporation 83 JVMを 再実装する! (ランタイムの重要な部分中心)
  • 84. © 2020 NTT DATA Corporation 84 再実装とは? C++の既存実装 ↓ Javaで再実装
  • 85. © 2020 NTT DATA Corporation 85 Project Metropolisの現在 • 現在:Java 15ベースのEAビルドがある • https://jdk.java.net/metropolis/ • GraalVM JITコンパイラがデフォルトコンパイラ • ネイティブコンパイル済み • 次にどのコンポーネントがJava on Javaとなるのかは明らかでない • たとえばGCは難しいだろうと言われている
  • 86. © 2020 NTT DATA Corporation 86 JITコンパイラが Javaで書かれていると
  • 87. © 2020 NTT DATA Corporation 87 JITコンパイラの Javaコードも JITコンパイルする 必要がある
  • 88. © 2020 NTT DATA Corporation 88 つまり アプリケーション起動時に その分の時間がかかる
  • 89. © 2020 NTT DATA Corporation 89 JITコンパイラの コードをAOTコンパイル (ネイティブコンパイル) してしまえば ある程度解決できる
  • 90. © 2020 NTT DATA Corporation 90 JITコンパイラコードのコンパイル JavaでJITコンパイラを書く ↓ そうなるとJITコンパイラのJavaコードを JITコンパイルすることが必要 ↓ あらかじめJITコンパイラのJavaコードを ネイティブコンパイルしておく (libgraal/libjvmcicompiler)
  • 91. © 2020 NTT DATA Corporation 91 JVMとGraalVMは 互いに影響を 及ぼし合っている
  • 92. © 2020 NTT DATA Corporation 92 ただし、互いに 独立した開発 となっている
  • 93. © 2020 NTT DATA Corporation 93 GraalVMの3つの主機能 1. 新JITコンパイラによるパフォーマンス向上 2. JavaScript、Ruby、Pythonといった (JVM言語でない)言語を実行可能 3. アプリケーションをネイティブイメージにして JVMなしで実行可能 (JVMでの実行時とは異なる特性を持つ) みんなのJava OpenJDKから始まる大変革期! https://gihyo.jp/book/2020/978-4-297-11199-1
  • 94. © 2020 NTT DATA Corporation本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です