SlideShare a Scribd company logo
1 of 15
Download to read offline
Scala	
 Performance	
 Tuning	
 Tips	
 
	
 
水島宏太
自己紹介	
 
n 
n 
n 

Twitter:	
 @kmizu	
 
GitHub:	
 https://github.com/kmizu	
 
Scalaの普及活動やってます	
 
n 

n 

Scala	
 Conference	
 in	
 Japan	
 座長	
 

形式言語、構文解析好き	
 
n 
n 

プログラミング言語Onionを開発	
 
新しい言語も開発中
トレードマーク?
アジェンダ	
 
n 
n 
n 
n 
n 
n 

Scalaの概要	
 
Scalaの性能特性	
 
Java	
 VMの特性	
 
デモ:向聴数計算プログラム	
 
Scala特有のはなし	
 
まとめ
Scalaとは	
 
n 

JVM上で動作するプログラミング言語	
 
※言語と処理系は本来分けて論じるべき	
 
	
 

n 

JVMのクラスファイルにコンパイル	
 

n 

静的型付きオブジェクト指向言語	
 
関数型プログラミングも積極的に支援	
 

n 
Scala略式年表	
 
n 

2003年:誕生	
 

n 

2006年:Scala	
 2.0	
 

n 

2008年:Twitterで採用開始	
 

	
 
n 

2011年:Typesafe社設立
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)
Scalaの性能特性	
 
n 

ほとんどの場合は十分な性能	
 
n 

n 

Javaと本当に同程度の速度を出す方法	
 
n 
n 

n 
n 

たまにかなり遅くなる事がある	
 
高階関数を使わない	
 
変更可能なコレクションだけを使う	
 

縛りプレイは止めよう	
 
JVMを知ろう	
 
n 

楽して高速化する
Java	
 VMの特性(Java/Scala共通)	
 
n 

高度な最適化コンパイラ	
 
n 

n 

簡単なチューニングは効果が薄い	
 
n 
n 
n 

n 

特に所謂Server	
 VM(C2コンパイラ)	
 
メソッドのインライン化	
 
フィールドへの直接アクセス	
 
staticメソッドを使う	
 

メモリ管理のチューニングは効果的	
 
n 

どこでオブジェクトを確保しているか
デモ:向聴数計算プログラム	
 
	
 
	
 
	
 
	
 

https://github.com/kmizu/shanten_benchmark
Scala特有のはなし	
 
n 

メモリ確保箇所を見落としがち	
 

n 

注意する必要がある項目:	
 
n 
n 
n 
n 

無名関数	
 
for構文:無名関数が作られる	
 
implicit	
 conversion(<	
 Scala	
 2.10)	
 
boxing/unboxing	
 
n 

基本型相当のオブジェクトの出し入れ時
やってはいけない	
 
n 

闇雲に全体をJava風に書き換える	
 
n 
n 
n 

n 

高階関数をループ構文に置き換える	
 
implicit	
 conversionを使わない	
 
for構文をループに置き換える	
 

ボトルネックを見極める	
 
n 
n 

メモリ確保回数が異常に多い箇所	
 
使えるならプロファイラを使う
まとめ	
 
n 

Java	
 VMを知ることが高速化への近道	
 
n 

n 

Java風コードへの書き換えは慎重に	
 
n 

n 

特にメモリ確保・GCの仕組み	
 

効果があまりない場合も多い	
 

隠れたメモリ確保に注意をはらう	
 
n 

boxing/unboxingは見落としがち
もっとJava	
 VMを知りたい人へ	
 
n 

Java仮想マシン仕様を読む	
 

n 

OpenJDKのソースコードを読む	
 
n 

詳しい人と一緒に読みましょう	
 
n 

n 

心が折れます	
 

クラスファイルを逆アセンブルする	
 
n 

javap!	
 javap!
Java	
 VMに関する余談	
 
n 

意外な最適化が効果的なこともある	
 
n 

インタフェース型→クラス型への置換	
 
n 

n 

剰余演算→ビット演算への置換	
 
n 

n 

invokeinterface,	
 invokevirtualの違い	
 
Java	
 VMでも効く	
 

Java	
 VMの進化で無効になるかも

More Related Content

What's hot

頑張りすぎないScala
頑張りすぎないScala頑張りすぎないScala
頑張りすぎないScalatakezoe
 
元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。takako onoue
 
Do you like scala
Do you like scalaDo you like scala
Do you like scalaYuto Suzuki
 
Scalaはじめました!
Scalaはじめました!Scalaはじめました!
Scalaはじめました!Asami Abe
 
[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティhirotakanosato
 
Scala警察のすすめ
Scala警察のすすめScala警察のすすめ
Scala警察のすすめtakezoe
 
Contributing to Scala OSS from East Asia #ScalaMatsuri
 Contributing to Scala OSS from East Asia #ScalaMatsuri Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuriKazuhiro Sera
 
Skinny Framework で始めた Scala
Skinny Framework で始めた ScalaSkinny Framework で始めた Scala
Skinny Framework で始めた ScalaRyuji Yamashita
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編Asami Abe
 
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageekJava エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageekKazuhiro Sera
 
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発Mogi Isamu
 
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselKei Nakazawa
 
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaKazuhiro Sera
 
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Haruki Okada
 
Scala界隈の近況
Scala界隈の近況Scala界隈の近況
Scala界隈の近況takezoe
 
Non-Functional Programming in Scala
Non-Functional Programming in ScalaNon-Functional Programming in Scala
Non-Functional Programming in Scalatakezoe
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24Kazuhiro Sera
 
プロダクトにおけるScala
プロダクトにおけるScalaプロダクトにおけるScala
プロダクトにおけるScalaYuto Suzuki
 
SIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたことSIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたことtakezoe
 
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージLaravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージYuta Nagamiya
 

What's hot (20)

頑張りすぎないScala
頑張りすぎないScala頑張りすぎないScala
頑張りすぎないScala
 
元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。元インフラエンジニアが
Scalaを触ってつまづいたところ。
元インフラエンジニアが
Scalaを触ってつまづいたところ。
 
Do you like scala
Do you like scalaDo you like scala
Do you like scala
 
Scalaはじめました!
Scalaはじめました!Scalaはじめました!
Scalaはじめました!
 
[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ[Scalamatsuri2016]あ、社内コミュニティ
[Scalamatsuri2016]あ、社内コミュニティ
 
Scala警察のすすめ
Scala警察のすすめScala警察のすすめ
Scala警察のすすめ
 
Contributing to Scala OSS from East Asia #ScalaMatsuri
 Contributing to Scala OSS from East Asia #ScalaMatsuri Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
 
Skinny Framework で始めた Scala
Skinny Framework で始めた ScalaSkinny Framework で始めた Scala
Skinny Framework で始めた Scala
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageekJava エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
 
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
AndroidStudioとGradleを利用したScala言語によるAndroidアプリの開発
 
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
 
Skinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scalaSkinny Framework 進捗どうですか? #fud_scala
Skinny Framework 進捗どうですか? #fud_scala
 
Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間Scalaと過ごした5ヶ月間
Scalaと過ごした5ヶ月間
 
Scala界隈の近況
Scala界隈の近況Scala界隈の近況
Scala界隈の近況
 
Non-Functional Programming in Scala
Non-Functional Programming in ScalaNon-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[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
プロダクトにおけるScala
プロダクトにおけるScalaプロダクトにおけるScala
プロダクトにおけるScala
 
SIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたことSIerでScalaを使うために私がしたこと
SIerでScalaを使うために私がしたこと
 
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージLaravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
 

Similar to Scala Performance Tuning Tips

Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみてKota Mizushima
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題Kota Mizushima
 
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしいke-m kamekoopa
 
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test DriverAsakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test Driverapirakun
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化maruyama097
 
こわくないScala
こわくないScalaこわくないScala
こわくないScalaFScoward
 
JavaWorld Day 2009 Scala
JavaWorld Day 2009 ScalaJavaWorld Day 2009 Scala
JavaWorld Day 2009 ScalaTomoharu ASAMI
 
プログラミング言語の比較表
プログラミング言語の比較表プログラミング言語の比較表
プログラミング言語の比較表Kazunori Sakamoto
 
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料leverages_event
 
第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料tantack
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Asami Abe
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!K Kinzal
 
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみてRealm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみてDaisuke Nagata
 
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]Ra Zon
 
Scala.js触ってみた
Scala.js触ってみた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.jsScala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.jstakezoe
 
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.jsYuto Suzuki
 
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009Taisuke Shiratori
 
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleOverview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleDaisuke Kasuya
 

Similar to Scala Performance Tuning Tips (20)

Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題
 
Scalaノススメ
ScalaノススメScalaノススメ
Scalaノススメ
 
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい関数型もモナドも分からなくてもScalaと言う言語は便利らしい
関数型もモナドも分からなくてもScalaと言う言語は便利らしい
 
Asakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test DriverAsakusaソースコードリーディング #4 – Asakusa Test Driver
Asakusaソースコードリーディング #4 – Asakusa Test Driver
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化
 
こわくないScala
こわくないScalaこわくないScala
こわくないScala
 
JavaWorld Day 2009 Scala
JavaWorld Day 2009 ScalaJavaWorld Day 2009 Scala
JavaWorld Day 2009 Scala
 
プログラミング言語の比較表
プログラミング言語の比較表プログラミング言語の比較表
プログラミング言語の比較表
 
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
 
第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料第1回名古屋Android勉強会Lt用資料
第1回名古屋Android勉強会Lt用資料
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
 
Realm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみてRealm,rx swift,repro を使ってみて
Realm,rx swift,repro を使ってみて
 
Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]Scalaで萌える関数型プログラミング[エッセンシャル版]
Scalaで萌える関数型プログラミング[エッセンシャル版]
 
Scala.js触ってみた
Scala.js触ってみた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.jsScala 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【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
 
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
 
Overview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker TackleOverview of Scala ~ Hacker Tackle
Overview of Scala ~ Hacker Tackle
 

More from Kota Mizushima

こわくない型クラス
こわくない型クラスこわくない型クラス
こわくない型クラスKota Mizushima
 
About Capabilities for Uniqueness and Borrowing
About Capabilities for Uniqueness and BorrowingAbout Capabilities for Uniqueness and Borrowing
About Capabilities for Uniqueness and BorrowingKota Mizushima
 
Scala Macros makes it easy to provide useful libraries
Scala Macros makes it easy to provide useful librariesScala Macros makes it easy to provide useful libraries
Scala Macros makes it easy to provide useful librariesKota Mizushima
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力Kota Mizushima
 
日本Scalaユーザーズグループ発足
日本Scalaユーザーズグループ発足日本Scalaユーザーズグループ発足
日本Scalaユーザーズグループ発足Kota Mizushima
 
Implicit Implicit Scala
Implicit Implicit ScalaImplicit Implicit Scala
Implicit Implicit ScalaKota Mizushima
 
Implicit Explicit Scala
Implicit Explicit ScalaImplicit Explicit Scala
Implicit Explicit ScalaKota Mizushima
 
言語アップデート -Scala編-
言語アップデート -Scala編-言語アップデート -Scala編-
言語アップデート -Scala編-Kota Mizushima
 
ScalaのソースをEclipseでビルドしてみた
ScalaのソースをEclipseでビルドしてみたScalaのソースをEclipseでビルドしてみた
ScalaのソースをEclipseでビルドしてみたKota Mizushima
 
Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)Kota Mizushima
 
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本Kota Mizushima
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
帰って来たNemerle
帰って来たNemerle帰って来たNemerle
帰って来たNemerleKota Mizushima
 

More from Kota Mizushima (20)

kollectionの紹介
kollectionの紹介kollectionの紹介
kollectionの紹介
 
Macros in nemerle
Macros in nemerleMacros in nemerle
Macros in nemerle
 
Introduction to PEG
Introduction to PEGIntroduction to PEG
Introduction to PEG
 
Power of Scala
Power of ScalaPower of Scala
Power of Scala
 
こわくない型クラス
こわくない型クラスこわくない型クラス
こわくない型クラス
 
こわくないScala
こわくないScalaこわくないScala
こわくないScala
 
Scala is-unscared
Scala is-unscaredScala is-unscared
Scala is-unscared
 
About Capabilities for Uniqueness and Borrowing
About Capabilities for Uniqueness and BorrowingAbout 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 librariesScala Macros makes it easy to provide useful libraries
Scala Macros makes it easy to provide useful libraries
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力
 
日本Scalaユーザーズグループ発足
日本Scalaユーザーズグループ発足日本Scalaユーザーズグループ発足
日本Scalaユーザーズグループ発足
 
Implicit Implicit Scala
Implicit Implicit ScalaImplicit Implicit Scala
Implicit Implicit Scala
 
Implicit Explicit Scala
Implicit Explicit ScalaImplicit Explicit Scala
Implicit Explicit Scala
 
言語アップデート -Scala編-
言語アップデート -Scala編-言語アップデート -Scala編-
言語アップデート -Scala編-
 
Scalaz
ScalazScalaz
Scalaz
 
ScalaのソースをEclipseでビルドしてみた
ScalaのソースをEclipseでビルドしてみたScalaのソースをEclipseでビルドしてみた
ScalaのソースをEclipseでビルドしてみた
 
Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)Scalaの限定継続の応用と基本(改訂版)
Scalaの限定継続の応用と基本(改訂版)
 
Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本Scalaの限定継続の応用と基本
Scalaの限定継続の応用と基本
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
帰って来たNemerle
帰って来たNemerle帰って来たNemerle
帰って来たNemerle
 

Scala Performance Tuning Tips