++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

非同期処理で UI 改善

leave a comment »

Bulding Windows 8 ブログ、日本語化されてたのね。しかも、日本語訳が機械翻訳じゃないっぽい。予算ついてるなぁ、さすがに。

さて、上記エントリーだと、ファイル管理機能の更新点が出てるわけですが。開発者視点で見ると、思いっきり非同期処理で大変そう。数年前から着々とやってきた、非同期 API の整備のたまものですかねぇ。

この手の処理は元々非同期なわけですが、きっと今までは、非同期処理の正しい書き方が面倒、テスト工数的に困難などなどあって、実装をあきらめるなり、不用意に性能落とすようなコードになってたんじゃないかとか考えられるわけです。

非同期処理 API の整備

非同期がらみのここ数年の動きを振り返ってみると、

というようなものが。

UMS、ConcRT、TPL

ちなみに、これらはどれも、基本的には、

というのを徹底しています。

UMS は、アプリケーションが自身の裁量でスレッドのスケジューリングを行えるようにして、システム スケジューラー(カーネル モードへの移行が必要)の稼働を減らす仕組み。

ConcRT と TPL は、ワーク スティーリング(work-stealing)アルゴリズム(低ロックなキューを使って効率的にタスク実行するしくみ)で、可能な限りスレッド切り替えや、カーネル モード移行をなくして協調的マルチタスクを行うライブラリ。

そして来年

そして、Windows 8 をはじめ、Microsoft 製品で来年くらい出荷のものから、非同期処理による性能や操作性の改善が入っていくのではないかと。バックグラウンド処理するのでフリーズが減ったり、スケジューリングが賢くなってるので大量のジョブを一気にやっても性能落ちなかったり。

なんかこう、OS の基本機能実装 → ライブラリ整備 → UI 層に反映という流れが実に4年くらいかけて行われているわけで。長い道のりよなぁ。

Written by ufcpp

2011年8月31日 @ 14:17

カテゴリー: .NET, C#, Windows

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。