■16479 / inTopicNo.11) |
Re[5]: Formイベントが呼ばれるスレッドについて |
□投稿者/ NyaRuRu (36回)-(2008/04/06(Sun) 22:14:05)
|
2008/04/06(Sun) 22:24:11 編集(投稿者) 2008/04/06(Sun) 22:14:56 編集(投稿者)
■No16469 (渋木宏明(ひどり) さん) に返信 >>Win32 Fiber のようなユーザモードスレッド切り替えでパフォーマンス (スループット) が向上するのは,MSSQL Server のような調停者を置いて大規模並列計算を行うときだと理解しています. > > 理屈の上ではそうだけど、効果を実感できる局面は限られてると見ていいでしょう。 > > SQL Server が Fiber をサポートして久しいけど、「Fiber を有効にしたらパフォーマンスが劇的に改善された」という話題を目にした記憶は、僕には今のところありません。
言葉足らずですみません.大規模並列計算を行うときに Fiber で必ずスループットが向上すると言いたいのではなくて,仮にパフォーマンスが上がるとしてもそういうエクストリームな世界のみだろうというのが言いたかった話です.
>>スレッドが重要というのは同意ですが,少なくとも現時点において,N:M スレッド対応でパフォーマンス的な恩恵を受けている .NET アプリケーションは皆無だと思います.(むしろパフォーマンスは若干落ちているはず) > > まぁ無いでしょうね。でも損失もそれほど大きなものではないでしょう。 > > Windows Forms に関して言うと、ダイナミックに物理スレッド/論理スレッドの切り替えが発生することはまずあり得ないし。
すみません,ここも言葉足らずでしたが,私の理解している範囲では現在の CLR ではダイナミックに物理スレッド/論理スレッドの切り替えは不可能なはずです. んで,将来の N:M スレッド対応のために BCL の中に盲腸のようなメソッド呼び出しが残っている.そんな感じだったような. Thread.BeginThreadAffinity とか EndThreadAffinity とかですね.あんまりちゃんと憶えてないですが,SSCLI のソースを読むとあちこちで使用されていて,だいぶソースを複雑にしていたという記憶があります.Silverlight VM だと消されているかもしれません.
ちょっと本題から離れすぎなので,興味がある方は続きは以下を読んだ上で別スレッドでどうぞという方向で. http://www.bluebytesoftware.com/blog/PermaLink,guid,8c2fed10-75b2-416b-aabc-c18ce8fe2ed4.aspx http://www.bluebytesoftware.com/blog/PermaLink,guid,2d0038b5-7ba5-421f-860b-d9282a1211d3.aspx
|
|