Submit Search
Upload
Scala Performance Tuning Tips
•
13 likes
•
2,850 views
Kota Mizushima
Follow
ぷろぐぱ http://atnd.org/event/E0021897 の発表資料
Read less
Read more
Report
Share
Report
Share
1 of 15
Download now
Download to read offline
Recommended
Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -
Kota Mizushima
Scalaの現状と今後
Scalaの現状と今後
Kota Mizushima
株式会社ドワンゴにおけるScala教育の現状
株式会社ドワンゴにおけるScala教育の現状
Kota Mizushima
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Scalaプロジェクトへの未経験者の円滑なジョインへ
Scalaプロジェクトへの未経験者の円滑なジョインへ
Kenji Doi
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
Scala採用の背景とその後 @ hitomedia night #5
Scala採用の背景とその後 @ hitomedia night #5
Jiro Hiraiwa
Scala戦士を増やせ
Scala戦士を増やせ
Yuto Suzuki
Recommended
Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -
Kota Mizushima
Scalaの現状と今後
Scalaの現状と今後
Kota Mizushima
株式会社ドワンゴにおけるScala教育の現状
株式会社ドワンゴにおけるScala教育の現状
Kota Mizushima
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Scalaプロジェクトへの未経験者の円滑なジョインへ
Scalaプロジェクトへの未経験者の円滑なジョインへ
Kenji Doi
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
Scala採用の背景とその後 @ hitomedia night #5
Scala採用の背景とその後 @ hitomedia night #5
Jiro Hiraiwa
Scala戦士を増やせ
Scala戦士を増やせ
Yuto Suzuki
頑張りすぎないScala
頑張りすぎないScala
takezoe
元インフラエンジニアが Scalaを触ってつまづいたところ。
元インフラエンジニアが Scalaを触ってつまづいたところ。
takako onoue
Do you like scala
Do you like scala
Yuto Suzuki
Scalaはじめました!
Scalaはじめました!
Asami Abe
[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ
hirotakanosato
Scala警察のすすめ
Scala警察のすすめ
takezoe
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
Skinny Framework で始めた Scala
Skinny Framework で始めた Scala
Ryuji Yamashita
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Asami Abe
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Kazuhiro Sera
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
Mogi Isamu
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
Kei Nakazawa
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間
Haruki Okada
Scala界隈の近況
Scala界隈の近況
takezoe
Non-Functional Programming in Scala
Non-Functional Programming in Scala
takezoe
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
プロダクトにおけるScala
プロダクトにおけるScala
Yuto Suzuki
SIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたこと
takezoe
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
Yuta Nagamiya
Scala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
More Related Content
What's hot
頑張りすぎないScala
頑張りすぎないScala
takezoe
元インフラエンジニアが Scalaを触ってつまづいたところ。
元インフラエンジニアが Scalaを触ってつまづいたところ。
takako onoue
Do you like scala
Do you like scala
Yuto Suzuki
Scalaはじめました!
Scalaはじめました!
Asami Abe
[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ
hirotakanosato
Scala警察のすすめ
Scala警察のすすめ
takezoe
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
Kazuhiro Sera
Skinny Framework で始めた Scala
Skinny Framework で始めた Scala
Ryuji Yamashita
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Asami Abe
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Kazuhiro Sera
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
Mogi Isamu
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
Kei Nakazawa
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間
Haruki Okada
Scala界隈の近況
Scala界隈の近況
takezoe
Non-Functional Programming in Scala
Non-Functional Programming in Scala
takezoe
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
Kazuhiro Sera
プロダクトにおけるScala
プロダクトにおけるScala
Yuto Suzuki
SIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたこと
takezoe
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
Yuta Nagamiya
What's hot
(20)
頑張りすぎないScala
頑張りすぎないScala
元インフラエンジニアが Scalaを触ってつまづいたところ。
元インフラエンジニアが Scalaを触ってつまづいたところ。
Do you like scala
Do you like scala
Scalaはじめました!
Scalaはじめました!
[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ
Scala警察のすすめ
Scala警察のすすめ
Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
Skinny Framework で始めた Scala
Skinny Framework で始めた Scala
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間
Scala界隈の近況
Scala界隈の近況
Non-Functional Programming in Scala
Non-Functional Programming in Scala
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
プロダクトにおけるScala
プロダクトにおけるScala
SIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたこと
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
Similar to Scala Performance Tuning Tips
Scala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
Scalaノススメ
Scalaノススメ
Yasuyuki Maeda
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
ke-m kamekoopa
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test Driver
apirakun
Java scriptの進化
Java scriptの進化
maruyama097
こわくないScala
こわくないScala
FScoward
JavaWorld Day 2009 Scala
JavaWorld Day 2009 Scala
Tomoharu ASAMI
プログラミング言語の比較表
プログラミング言語の比較表
Kazunori Sakamoto
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
leverages_event
第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料
tantack
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
Scala.jsはじめました!
Scala.jsはじめました!
K Kinzal
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
Daisuke Nagata
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
Ra Zon
Scala.js触ってみた
Scala.js触ってみた
Asami Abe
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
takezoe
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
Taisuke Shiratori
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
Daisuke Kasuya
Similar to Scala Performance Tuning Tips
(20)
Scala Daysに行ってみて
Scala Daysに行ってみて
Scalaの現状と課題
Scalaの現状と課題
Scalaノススメ
Scalaノススメ
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Java scriptの進化
Java scriptの進化
こわくないScala
こわくないScala
JavaWorld Day 2009 Scala
JavaWorld Day 2009 Scala
プログラミング言語の比較表
プログラミング言語の比較表
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala.jsはじめました!
Scala.jsはじめました!
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scala.js触ってみた
Scala.js触ってみた
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
More from Kota Mizushima
kollectionの紹介
kollectionの紹介
Kota Mizushima
Macros in nemerle
Macros in nemerle
Kota Mizushima
Introduction to PEG
Introduction to PEG
Kota Mizushima
Power of Scala
Power of Scala
Kota Mizushima
こわくない型クラス
こわくない型クラス
Kota Mizushima
こわくないScala
こわくないScala
Kota Mizushima
Scala is-unscared
Scala is-unscared
Kota Mizushima
About Capabilities for Uniqueness and Borrowing
About Capabilities for Uniqueness and Borrowing
Kota Mizushima
Scala Macros makes it easy to provide useful libraries
Scala Macros makes it easy to provide useful libraries
Kota Mizushima
Scala + Finagleの魅力
Scala + Finagleの魅力
Kota Mizushima
日本Scalaユーザーズグループ発足
日本Scalaユーザーズグループ発足
Kota Mizushima
Implicit Implicit Scala
Implicit Implicit Scala
Kota Mizushima
Implicit Explicit Scala
Implicit Explicit Scala
Kota Mizushima
言語アップデート -Scala編-
言語アップデート -Scala編-
Kota Mizushima
Scalaz
Scalaz
Kota Mizushima
ScalaのソースをEclipseでビルドしてみた
ScalaのソースをEclipseでビルドしてみた
Kota Mizushima
Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)
Kota Mizushima
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本
Kota Mizushima
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
帰って来たNemerle
帰って来たNemerle
Kota Mizushima
More from Kota Mizushima
(20)
kollectionの紹介
kollectionの紹介
Macros in nemerle
Macros in nemerle
Introduction to PEG
Introduction to PEG
Power of Scala
Power of Scala
こわくない型クラス
こわくない型クラス
こわくないScala
こわくないScala
Scala is-unscared
Scala is-unscared
About Capabilities for Uniqueness and Borrowing
About Capabilities for Uniqueness and Borrowing
Scala Macros makes it easy to provide useful libraries
Scala Macros makes it easy to provide useful libraries
Scala + Finagleの魅力
Scala + Finagleの魅力
日本Scalaユーザーズグループ発足
日本Scalaユーザーズグループ発足
Implicit Implicit Scala
Implicit Implicit Scala
Implicit Explicit Scala
Implicit Explicit Scala
言語アップデート -Scala編-
言語アップデート -Scala編-
Scalaz
Scalaz
ScalaのソースをEclipseでビルドしてみた
ScalaのソースをEclipseでビルドしてみた
Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本
メタプログラミングって何だろう
メタプログラミングって何だろう
帰って来たNemerle
帰って来たNemerle
Scala Performance Tuning Tips
1.
Scala Performance Tuning
Tips 水島宏太
2.
自己紹介 n n n Twitter: @kmizu
GitHub: https://github.com/kmizu Scalaの普及活動やってます n n Scala Conference in Japan 座長 形式言語、構文解析好き n n プログラミング言語Onionを開発 新しい言語も開発中
3.
トレードマーク?
4.
アジェンダ n n n n n n Scalaの概要 Scalaの性能特性
Java VMの特性 デモ:向聴数計算プログラム Scala特有のはなし まとめ
5.
Scalaとは n JVM上で動作するプログラミング言語 ※言語と処理系は本来分けて論じるべき
n JVMのクラスファイルにコンパイル n 静的型付きオブジェクト指向言語 関数型プログラミングも積極的に支援 n
6.
Scala略式年表 n 2003年:誕生 n 2006年:Scala
2.0 n 2008年:Twitterで採用開始 n 2011年:Typesafe社設立
7.
Fibonacci in Scala
object Fibonacci { def main(args :Array[String]) = { lazy val fib: Stream[Int] = 0 #:: 1 #:: fib.zip(fib.tail).map{ case (a, b) => a + b } println(fib.take(10).toList) } } //=> List(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)
8.
Scalaの性能特性 n ほとんどの場合は十分な性能 n n Javaと本当に同程度の速度を出す方法
n n n n たまにかなり遅くなる事がある 高階関数を使わない 変更可能なコレクションだけを使う 縛りプレイは止めよう JVMを知ろう n 楽して高速化する
9.
Java VMの特性(Java/Scala共通) n 高度な最適化コンパイラ
n n 簡単なチューニングは効果が薄い n n n n 特に所謂Server VM(C2コンパイラ) メソッドのインライン化 フィールドへの直接アクセス staticメソッドを使う メモリ管理のチューニングは効果的 n どこでオブジェクトを確保しているか
10.
デモ:向聴数計算プログラム
https://github.com/kmizu/shanten_benchmark
11.
Scala特有のはなし n メモリ確保箇所を見落としがち n 注意する必要がある項目:
n n n n 無名関数 for構文:無名関数が作られる implicit conversion(< Scala 2.10) boxing/unboxing n 基本型相当のオブジェクトの出し入れ時
12.
やってはいけない n 闇雲に全体をJava風に書き換える n n n n 高階関数をループ構文に置き換える
implicit conversionを使わない for構文をループに置き換える ボトルネックを見極める n n メモリ確保回数が異常に多い箇所 使えるならプロファイラを使う
13.
まとめ n Java VMを知ることが高速化への近道
n n Java風コードへの書き換えは慎重に n n 特にメモリ確保・GCの仕組み 効果があまりない場合も多い 隠れたメモリ確保に注意をはらう n boxing/unboxingは見落としがち
14.
もっとJava VMを知りたい人へ n Java仮想マシン仕様を読む
n OpenJDKのソースコードを読む n 詳しい人と一緒に読みましょう n n 心が折れます クラスファイルを逆アセンブルする n javap! javap!
15.
Java VMに関する余談 n 意外な最適化が効果的なこともある
n インタフェース型→クラス型への置換 n n 剰余演算→ビット演算への置換 n n invokeinterface, invokevirtualの違い Java VMでも効く Java VMの進化で無効になるかも
Download now