Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Kota Mizushima
PDF, PPTX
2,857 views
Scala Performance Tuning Tips
ぷろぐぱ http://atnd.org/event/E0021897 の発表資料
Read more
13
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 15
2
/ 15
3
/ 15
4
/ 15
5
/ 15
6
/ 15
7
/ 15
8
/ 15
9
/ 15
10
/ 15
11
/ 15
12
/ 15
13
/ 15
14
/ 15
15
/ 15
More Related Content
PDF
Scala Daysに行ってみて - あるいはスイス旅行記 -
by
Kota Mizushima
PDF
Scalaの現状と今後
by
Kota Mizushima
PDF
株式会社ドワンゴにおけるScala教育の現状
by
Kota Mizushima
PDF
Scalaでのプログラム開発
by
Kota Mizushima
PDF
Scalaプロジェクトへの未経験者の円滑なジョインへ
by
Kenji Doi
PDF
ドワンゴにおける新卒エンジニア向けScala研修について
by
Kota Mizushima
PPTX
Scala採用の背景とその後 @ hitomedia night #5
by
Jiro Hiraiwa
PPTX
Scala戦士を増やせ
by
Yuto Suzuki
Scala Daysに行ってみて - あるいはスイス旅行記 -
by
Kota Mizushima
Scalaの現状と今後
by
Kota Mizushima
株式会社ドワンゴにおけるScala教育の現状
by
Kota Mizushima
Scalaでのプログラム開発
by
Kota Mizushima
Scalaプロジェクトへの未経験者の円滑なジョインへ
by
Kenji Doi
ドワンゴにおける新卒エンジニア向けScala研修について
by
Kota Mizushima
Scala採用の背景とその後 @ hitomedia night #5
by
Jiro Hiraiwa
Scala戦士を増やせ
by
Yuto Suzuki
What's hot
PDF
頑張りすぎないScala
by
takezoe
PPTX
元インフラエンジニアが Scalaを触ってつまづいたところ。
by
takako onoue
PPTX
Do you like scala
by
Yuto Suzuki
KEY
Scalaはじめました!
by
Asami Abe
PDF
[Scalamatsuri2016]あ、社内コミュニティ
by
hirotakanosato
PDF
Scala警察のすすめ
by
takezoe
PDF
Contributing to Scala OSS from East Asia #ScalaMatsuri
by
Kazuhiro Sera
PDF
Skinny Framework で始めた Scala
by
Ryuji Yamashita
KEY
PlayFramework1.x基礎編
by
Asami Abe
PDF
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
by
Kazuhiro Sera
PDF
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
by
Mogi Isamu
PPTX
ScalaでASICやFPGA用の回路を設計するChisel
by
Kei Nakazawa
PDF
Skinny Framework 進捗どうですか? #fud_scala
by
Kazuhiro Sera
PDF
Scalaと過ごした5ヶ月間
by
Haruki Okada
PDF
Scala界隈の近況
by
takezoe
PDF
Non-Functional Programming in Scala
by
takezoe
PDF
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
by
Kazuhiro Sera
PPTX
プロダクトにおけるScala
by
Yuto Suzuki
PDF
SIerでScalaを使うために私がしたこと
by
takezoe
PDF
Laravelのパッケージのテストに便利なパッケージ
by
Yuta Nagamiya
頑張りすぎないScala
by
takezoe
元インフラエンジニアが Scalaを触ってつまづいたところ。
by
takako onoue
Do you like scala
by
Yuto Suzuki
Scalaはじめました!
by
Asami Abe
[Scalamatsuri2016]あ、社内コミュニティ
by
hirotakanosato
Scala警察のすすめ
by
takezoe
Contributing to Scala OSS from East Asia #ScalaMatsuri
by
Kazuhiro Sera
Skinny Framework で始めた Scala
by
Ryuji Yamashita
PlayFramework1.x基礎編
by
Asami Abe
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
by
Kazuhiro Sera
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
by
Mogi Isamu
ScalaでASICやFPGA用の回路を設計するChisel
by
Kei Nakazawa
Skinny Framework 進捗どうですか? #fud_scala
by
Kazuhiro Sera
Scalaと過ごした5ヶ月間
by
Haruki Okada
Scala界隈の近況
by
takezoe
Non-Functional Programming in Scala
by
takezoe
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
by
Kazuhiro Sera
プロダクトにおけるScala
by
Yuto Suzuki
SIerでScalaを使うために私がしたこと
by
takezoe
Laravelのパッケージのテストに便利なパッケージ
by
Yuta Nagamiya
More from Kota Mizushima
PDF
kollectionの紹介
by
Kota Mizushima
PDF
Macros in nemerle
by
Kota Mizushima
PDF
Introduction to PEG
by
Kota Mizushima
PPT
Power of Scala
by
Kota Mizushima
PDF
こわくない型クラス
by
Kota Mizushima
PDF
こわくないScala
by
Kota Mizushima
PDF
Scala is-unscared
by
Kota Mizushima
PDF
About Capabilities for Uniqueness and Borrowing
by
Kota Mizushima
PDF
Scala Macros makes it easy to provide useful libraries
by
Kota Mizushima
PDF
Scala + Finagleの魅力
by
Kota Mizushima
PDF
Scalaの現状と課題
by
Kota Mizushima
PDF
日本Scalaユーザーズグループ発足
by
Kota Mizushima
PDF
Implicit Implicit Scala
by
Kota Mizushima
PDF
Implicit Explicit Scala
by
Kota Mizushima
PDF
言語アップデート -Scala編-
by
Kota Mizushima
PDF
Scalaz
by
Kota Mizushima
PPTX
ScalaのソースをEclipseでビルドしてみた
by
Kota Mizushima
PDF
Scalaの限定継続の応用と基本(改訂版)
by
Kota Mizushima
PDF
Scalaの限定継続の応用と基本
by
Kota Mizushima
PPT
メタプログラミングって何だろう
by
Kota Mizushima
kollectionの紹介
by
Kota Mizushima
Macros in nemerle
by
Kota Mizushima
Introduction to PEG
by
Kota Mizushima
Power of Scala
by
Kota Mizushima
こわくない型クラス
by
Kota Mizushima
こわくないScala
by
Kota Mizushima
Scala is-unscared
by
Kota Mizushima
About Capabilities for Uniqueness and Borrowing
by
Kota Mizushima
Scala Macros makes it easy to provide useful libraries
by
Kota Mizushima
Scala + Finagleの魅力
by
Kota Mizushima
Scalaの現状と課題
by
Kota Mizushima
日本Scalaユーザーズグループ発足
by
Kota Mizushima
Implicit Implicit Scala
by
Kota Mizushima
Implicit Explicit Scala
by
Kota Mizushima
言語アップデート -Scala編-
by
Kota Mizushima
Scalaz
by
Kota Mizushima
ScalaのソースをEclipseでビルドしてみた
by
Kota Mizushima
Scalaの限定継続の応用と基本(改訂版)
by
Kota Mizushima
Scalaの限定継続の応用と基本
by
Kota Mizushima
メタプログラミングって何だろう
by
Kota Mizushima
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