技術トピックス

Report
技術トピックス
2014/08
1-1. ART
• これを聞いてピンときたらよくアンテナを張っ
てますね!
→アートではないですよ・・・、
→ヒントはAndroidの・・・
1-1. ART
• ARTはthe Android Runtimeを指し、現行のDalvikに替わる
プラットフォーム
• 現在は開発者向けにAndroid Lとして公開
→Dalvikはスマフォのスペックが低かった時に設計されている
ため、現在の高スペックを生かし切れていない
• DalvikはJITコンパイラを採用しているのに対し、ARTは
AOT(ahead-of-time)を採用
→AOTはJITと異なり、アプリ実行前にコンパイル
• 他にもいろいろあるので下記参照
【URL】http://www.infoq.com/jp/news/2014/07/artruntime?utm_source=infoq&utm_medium=popular_links_ho
mepage
1-2. Androidアプリは儲からない?
• 米Mika Mobileが人気RPGゲーム
「Battleheart」のAndroid版の開発終了
• 日本では242円で販売
• 5万ダウンロード以上
• Android版アプリは全体の売上5%にしかみた
いない
• 今後、日本もそうなっていく傾向が出てくるか
もしれない
1-3. インメモリデータベース
• 2014/07/23にOracle Dababase 12cのインメモリ
データベースオプションの提供開始
• 特徴としてはアプリの改修なしで大幅に性能アッ
プが見込める
→DB周りがボトルネックだった場合ですが・・・
• 価格は1CPUあたり250万ですが・・・
• 詳しくは下記参照
【URL】
http://www.oracle.com/jp/products/database/ente
rprise-edition/overview/index.html
2-1-1. Java8 ラムダ式
• Java8からラムダ式が導入されましたがさすがに
知ってますよね?
• ただ、導入されたことは知っていても、何故導入
されたかという経緯を知らない人って多いです
ね・・・
• これだと有効な使い方ができない・・・
→この場合、誰かが作ったフレームワーク
を使っているだけの人の発想
• 知ってますよね?
2-1-2. ラムダ式(追加された経緯)
• いろいろな理由があるますが一番はコレク
ション処理を並列で動かすことです!
• 何故、コレクションの並列処理を強化したかと
いうと、マルチコアプロセッサをフル活用した
いためです
• ここで「ん?」と疑問に思った人は観点がいい
ですね!!
2-1-3. ラムダ式(以前の場合)
• もちろん以下の処理で並列処理ができます
for(String name : nameList) {
// ここにスレッド処理を独自実装
}
// ここでスレッド終了を待つ処理を独自実装
• この場合の問題点として、並列処理を独自実
装が必要です
2-1-4. ラムダ式(Java8の場合)
• Java8では並列処理を独自実装ではなく、コレク
ション(ライブラリ)に任せることができる
List<String> nameList; // インスタンス生成等は省く
nameList.forEach(x->{
// ここに処理(重たい)
});
• もちろん、これでは有効に使えていません。
→並列処理になっていない
• ここで経緯を知らない人は満足してしまうでしょう
2-1-5. ラムダ式(Java8の場合)
• ここで重要なのは「parallelStream」メソッド!
→つまり以下のようになる
nameList.parallelStream().forEach(x->{
// ここに処理(重たい)
});
• ただし、並列処理が有効な場合のみ使用することをお
勧めします
• これについても問題がある。詳しくは以下を参照
http://blog.yujing.jp/entry/2013/06/29/170337
http://blog.yujing.jp/entry/2013/05/29/100537
2-1-6. ラムダ式総括
• 新しい機能を試してみることはいいことです
• ただし、「何故」の部分を理解していないで
使っていると恥ずかしいことになることが今回
の事例でわかったと思います
• なので、コーディングするときは「使った場合
のメリット」を意識しましょう!
• これが入社1年目の新人と2年目以降で差が
出せる要因となります

similar documents