Thread Rating:
  • 640 Vote(s) - 2.79 Average
  • 1
  • 2
  • 3
  • 4
  • 5
マルチスレッド・マルチコアへの対応について
09-08-2011, 11:55 AM,
#10
RE: マルチスレッド・マルチコアへの対応について
復活の帝王様、hokada様

とても興味深く読ませて頂きましたので
私見にてお邪魔します。

質問の原点に帰りますが

Curl(クライアントアプリケーション)
でマルチスレッドを有効利用したいと思われるシーンってなんでしょう?

Curlは明示的にスレッドを作成し、制御することはできませんが
シングルスレッドでも非同期処理を行うことが可能です。

一般的にマルチスレッドを利用するメリットは以下になるかと思います。
・レスポンス・タイムの向上
・スループットの向上

私の場合、SOAP通信やORBを利用したシステムにおいて
レスポンス・タイムの向上は課題でしたが

非同期通信を行うことにより、シングルスレッドでも
ユーザアビリティを損なうことなく実現が可能でした。

サーバ処理がマルチスレッドなら
クライアントからの複数リクエストを処理することには
障害はありませんでした。

スループットの向上については
例えば、ディスクにアクセスしているときの
CPU待機時間の利用というのが考えられます。
これについても、非同期処理を利用することにより
性能改善を計ることができました。

スレッド作成とスケジューリングには膨大なCPUオーバーヘッド
がかかり、マルチスレッドにしたからといって速くなるとは限らない
場合もあります。特にクライアントマシンでのCPUでは
この問題は、顕著に現れます。

私見ですが、Webアプリケーションにおいて
マルチスレッド、マルチプロセッサ環境を
効率よく利用するシーンとは
主に、サーバが複数のクライアントリクエストを受付ける
場合に効果を発揮するのではないかと思います。

尤も、クライアント側でマルチスレッドを
実現することがとても有用であるシーンがあるのであれば
なんとも言い難いのですが・・・

.NETの開発にも携わったことがありますが、開発時間と設計コストを考慮したうえで
クライアント側でマルチスレッドを有効利用するシーンに
巡り合ったことが、あまりありません。

私自身は単なるCurlの利用者ですので、
Curlがマルチスレッドに対応しない背景は知りませんが、
簡単に言えば、Curlはシングルスレッドで
必要十分だと思う次第でありました。


Messages In This Thread
RE: マルチスレッド・マルチコアへの対応について - by onyo - 09-08-2011, 11:55 AM
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('257')