xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

TPL入門 (16) - おわりに

ここまで15回に渡ってTPLについて見てきました。個人的に勉強したことの備忘録でしかありませんが、読まれた方々が少しでもTPLについて興味を持ってくださったり、理解を深めるキッカケになっていれば幸いです。

しばらくTPLに触れてきて実感したことは、非常に多機能で柔軟性があるにも関わらず、それらを苦労せず簡単に利用できるということです。「並列処理」と聞いてウンザリしてしまうかもしれませんが、ちょっとの努力で大きな恩恵を受けられます。「まだTPLを使ったことがない」という方が近くにいるなら、ぜひ薦めて頂きたいと思います。

しかし簡単だからと言って、なんでもかんでも並列処理にすれば良いわけではありません。並列処理を行うには (TPLの内部処理として) スレッドを立てる必要がありますし、立てられたスレッドはWindowsによって細かく切り替えられながらCPUに伝達/処理されます。これらのコストはかなりのものです。この並列処理のオーバーヘッドを差し引いても通常の逐次的な処理よりも良いパフォーマンスが期待できる場合に限って利用すべきですTPLを利用する際には、パフォーマンス計測を行うなどして導入の妥当性を十分に検討してください

アプリケーションの高度化が進む一方で、多機能になり過ぎてパフォーマンスの劣化も進んでいます。主流になってきている複数コアを利用したプログラミングで、より良いユーザー体験を提供できる、そんな良きエンジニアになりたいですね!