More Related Content
Similar to async/await不要論 (20)
More from bleis tift (20)
async/await不要論
- 4. 昔話をします
初めて買ったPCのCPUは Duron 850MHz (2000年ごろ)
ハイエンドCPUが、ちょうど1GHzを越えたあたり
◦ PentiumⅢ1GHzとか、Athlon 1.2HGzとか
このころは、「2010年には20GHzのCPUを実現」とか言ってた
◦ 同じように、Hyper-Threadingやマルチコアの「サーバ用途での」重要性も言われ始めた
Intelはこの頃デスクトップ向けCPUでクロック周波数を向上させ続けていた
◦ プログラマにとっては、「フリーランチの時代」
しかし、2003年にクロック周波数の向上ペースは落ちてしまった
◦ 増え続ける発熱に対処できなくなった
◦ 2013年3月現在、x86向けCPUでの最高クロック周波数は4.2GHz
◦ フリーランチ時代の終焉・・・?
- 7. アムダールの法則
15%
並列化
並列化できない処理 できる
処理
50%
60%
並列化
できない 並列化できる処理
処理
50%
- 14. .NET Frameworkにおける
非同期プログラミングの移り変わり
4.5
4.0
TAP + async/await構文
2.0 TaskによるTAP
(Task-based Asynchronous Pattern)
完了イベントによるEAP
(Event-based Asynchronous Pattern)
.NET Framework 1.1
Begin/EndによるAPM
(Asynchronous Programming Model)
- 32. クエリ構文 VS async/await構文
クエリ構文 async/await構文
メソッドの制約 なし asyncをつけ、戻り値も制限
式全体の型 Task<T> T
通常の構文との差 大 小
対応している制御構文 逐次と、条件演算子による分岐 逐次、分岐、繰り返し
async/await は大体の制御構文と混ぜて記述できる(しかも型がT)のが大きい
クエリ構文でこれは厳しい・・・
- 38. コンピュテーション式とクエリ式
コンピュテーション式 クエリ式
目的 計算一般 クエリ
構文 他の構文に近い 他の構文とは全く別
制御構文 順次、分岐、反復などに対応可能 順次と(制限のある)分岐のみ
他にも、F#は同名の変数により変数をシャドーイング(隠蔽)したり、アンダースコア
によって値を捨てたりできる
.NET Framework2.0移行であればF#の基本機能はすべて使える