Suche senden
Hochladen
Javaはどれだけ速いのか
•
Als PPTX, PDF herunterladen
•
1 gefällt mir
•
780 views
YujiSoftware
Folgen
JJUGナイトセミナー「おうちで!ビール片手にLT大会!」で発表したLTです。 #jjug
Weniger lesen
Mehr lesen
Technologie
Diashow-Anzeige
Melden
Teilen
Diashow-Anzeige
Melden
Teilen
1 von 18
Jetzt herunterladen
Empfohlen
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
Empfohlen
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
Weitere ähnliche Inhalte
Ähnlich wie 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
Ähnlich wie 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
Mehr von 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
Mehr von 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のはなし
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 – 検証求む!
Jetzt herunterladen