Submit Search
Upload
Javaはどれだけ速いのか
•
Download as PPTX, PDF
•
1 like
•
780 views
YujiSoftware
Follow
JJUGナイトセミナー「おうちで!ビール片手にLT大会!」で発表したLTです。 #jjug
Read less
Read more
Technology
Report
Share
Report
Share
1 of 18
Download now
Recommended
Certified scrummaster研修について(LT ver.)
Certified scrummaster研修について(LT ver.)
Masaya Taji
Certified scrummaster研修について
Certified scrummaster研修について
Masaya Taji
Laravel の学び方と得られる学び
Laravel の学び方と得られる学び
Masaru Matsuo
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
Naoto Koshikawa
JavaのLambdaの裏事情
JavaのLambdaの裏事情
なおき きしだ
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
Laravelチュートリアルを作ってみた。
Laravelチュートリアルを作ってみた。
Futoshi Endo
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
Recommended
Certified scrummaster研修について(LT ver.)
Certified scrummaster研修について(LT ver.)
Masaya Taji
Certified scrummaster研修について
Certified scrummaster研修について
Masaya Taji
Laravel の学び方と得られる学び
Laravel の学び方と得られる学び
Masaru Matsuo
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
YAPC::Asia Tokyo 2014 前夜祭 pplog by @ppworks
Naoto Koshikawa
JavaのLambdaの裏事情
JavaのLambdaの裏事情
なおき きしだ
Java初心者がJava8のラムダ式をやってみた
Java初心者がJava8のラムダ式をやってみた
Aya Ebata
Laravelチュートリアルを作ってみた。
Laravelチュートリアルを作ってみた。
Futoshi Endo
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
Yuichi Yoshida
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
Tomohiro Ikeda
Zabbix study5lt
Zabbix study5lt
Tomohiro Ikeda
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
Play ja 3_update
Play ja 3_update
Takafumi Ikeda
ラムダのコンパイル結果を5分で説明するよ
ラムダのコンパイル結果を5分で説明するよ
YujiSoftware
Java をクラッシュさせて遊んでみよう!
Java をクラッシュさせて遊んでみよう!
YujiSoftware
技術書を読むと眠くなる!これを解決するために取った10の対策
技術書を読むと眠くなる!これを解決するために取った10の対策
YujiSoftware
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
Java を今すぐダウンロードしてみたお話
Java を今すぐダウンロードしてみたお話
YujiSoftware
JVM言語を使ってみようの歌
JVM言語を使ってみようの歌
YujiSoftware
AtCoderで始めるテスト駆動開発
AtCoderで始めるテスト駆動開発
YujiSoftware
Javaでマサカリ投げてみた
Javaでマサカリ投げてみた
YujiSoftware
ジャバのはなし、JAVAのはなし、Javaのはなし
ジャバのはなし、JAVAのはなし、Javaのはなし
YujiSoftware
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
More Related Content
Similar to Javaはどれだけ速いのか
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
Yuichi Yoshida
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
Tomohiro Ikeda
Zabbix study5lt
Zabbix study5lt
Tomohiro Ikeda
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
Play ja 3_update
Play ja 3_update
Takafumi Ikeda
Similar to Javaはどれだけ速いのか
(8)
java-ja TDD 2nd
java-ja TDD 2nd
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Halide, Darkroom - 並列化のためのソフトウェア・研究
Halide, Darkroom - 並列化のためのソフトウェア・研究
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
Zabbix study5lt
Zabbix study5lt
Play jjug2012spring
Play jjug2012spring
Play ja 3_update
Play ja 3_update
More from YujiSoftware
ラムダのコンパイル結果を5分で説明するよ
ラムダのコンパイル結果を5分で説明するよ
YujiSoftware
Java をクラッシュさせて遊んでみよう!
Java をクラッシュさせて遊んでみよう!
YujiSoftware
技術書を読むと眠くなる!これを解決するために取った10の対策
技術書を読むと眠くなる!これを解決するために取った10の対策
YujiSoftware
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
Java を今すぐダウンロードしてみたお話
Java を今すぐダウンロードしてみたお話
YujiSoftware
JVM言語を使ってみようの歌
JVM言語を使ってみようの歌
YujiSoftware
AtCoderで始めるテスト駆動開発
AtCoderで始めるテスト駆動開発
YujiSoftware
Javaでマサカリ投げてみた
Javaでマサカリ投げてみた
YujiSoftware
ジャバのはなし、JAVAのはなし、Javaのはなし
ジャバのはなし、JAVAのはなし、Javaのはなし
YujiSoftware
More from YujiSoftware
(9)
ラムダのコンパイル結果を5分で説明するよ
ラムダのコンパイル結果を5分で説明するよ
Java をクラッシュさせて遊んでみよう!
Java をクラッシュさせて遊んでみよう!
技術書を読むと眠くなる!これを解決するために取った10の対策
技術書を読むと眠くなる!これを解決するために取った10の対策
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
Java を今すぐダウンロードしてみたお話
Java を今すぐダウンロードしてみたお話
JVM言語を使ってみようの歌
JVM言語を使ってみようの歌
AtCoderで始めるテスト駆動開発
AtCoderで始めるテスト駆動開発
Javaでマサカリ投げてみた
Javaでマサカリ投げてみた
ジャバのはなし、JAVAのはなし、Javaのはなし
ジャバのはなし、JAVAのはなし、Javaのはなし
Recently uploaded
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(12)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Javaはどれだけ速いのか
1.
Java はどれだけ速いのか @YujiSoftware
2.
Java のイメージは? 遅い or
速い
3.
なぜ Java =
遅いイメージがあるのか? •Duke のせい? – 短足 – 太ってる → 「なんか動きが遅そう…」 • GCは遅いという概念 • Java 1.1 の頃の印象が残っている
4.
なぜ Java =
速いイメージがあるのか? •Duke のおかげ? – Tumbling Duke → 「Java はすごい!」 • JIT コンパイラが強力 – C言語よりも速くなるときがあるとも言われている • GCが速くなった
5.
結局のところどうなの? • やってみるしかない! • 数独(ナンプレ)解析プログラムを作成 –
主な処理は2つ • 問題の読み込み(100万件) • 数独の解析(主にループと条件分岐) • Java 版と C 言語版で実行時間を比較 – Java はどれだけ速いのか…!
6.
実行結果 • C言語の方が速い! 4.49秒 3.32秒
7.
どうしてこうなった • 最初は C言語の方が遅かった –
C言語で、200万回 malloc したら遅かった – 2回にしたら、一気に速くなった – Javaは、200万回 new してても十分に速かった – 2回にしても、ほとんど実行時間は変わらなかった • 結果、Java が負けた orz • C言語にも弱点はある – しかし、今回のプログラムでは Java が有利にならなかった
8.
まとめ • Java は
C 言語よりも遅い
9.
まとめ • Java は
C 言語よりも遅い ちょっと 待った!
10.
今日のテーマ 「Java はどれだけ速いのか」 • Java
は遅いで終わらせるわけにはいかない – 相手が悪かった • C言語以外と比較してみた – 改めて、Java はどれだけ速いのか…!
11.
実行結果 • やっぱり は速い! 4.49秒 7分21秒 9分43秒
12.
動的型付け言語との比較は ずるいのでは?
13.
どういうこと • Ruby や
Python は動的型付け言語 – 実行時に型を判断するオーバーヘッドがある – 最適化が難しい • Java は静的型付け言語 – コンパイル時に型を確定させている – 最適化がしやすい • 比較するなら、同じ種類の言語同士でやるべき!
14.
今日のテーマ 「Java はどれだけ速いのか」 • 真打登場 –
C# (.NET Core) – Go – Rust – C • これらの言語と比較してみた – 果たして、Java はどれだけ速いのか…!
15.
実行結果 4.49秒 3.32秒 2.86秒 2.90秒 6.39秒
16.
まとめ • Java は
C# よりも速い – Rust とか Go とか、速すぎでは… • ただし「今回の数独解析プログラムの場合」という条件付き – プログラムの種類によって大きく順位が変わる可能性あり – 実行環境によっても大きく変わる • OS、CPUの種類、メモリの量、プログラマーの腕、などなど • 特に、Linux上で動かしたので C# が少し不利だったかも… • みなさんも、いろいろなプログラムで試してみましょう!
17.
Java はどれだけ速いのか @YujiSoftware
18.
補足 • 実行環境 – Ubuntu
18 on VirtualBox • Intel Core i7-7500U @ 2.70GHz • CPU2コア、メモリ4GBを割り当て • 実行バージョン – GCC 7.5.0 – Java 14.0.2 – Go 1.15 – Rust 1.45.1 – .NET 3.1.401 – Ruby 2.5.1p57 – Python 3.6.9 • ソースコード – https://github.com/YujiSoftware/Sudoku – 検証求む!
Download now