例えば、サーバ側で必ず一定時間スリープするメソッドを用意しておいて、そのメソッドをクライアントから同時にn回呼び出した場合に、n回の呼出はシーケンシャルに処理されるのか?それとも並行して処理されるのか?
以下の内容で、任意時間スレッドをスリープさせるメソッドを.Net Remotingを用いて呼び出す調査を行いました。
スレッド数 | 200 |
スリープ時間 | 120秒 |
オブジェクトの公開方法 | RemotingServices.Marshalメソッドによる公開 |
以下の結果が得られました。
- 200個のスレッドからの呼び出しは同時に並行処理されました
- 1回のメソッドの呼び出しに0.5s程度の時間がかかりました。
- 200回の呼び出しが完了するのに100s程度かかりました。