0

かなり高価なオブジェクトを使用して作成するサービスがあります。通話ごとにパフォーマンスを向上させたい。

オブジェクトを削除して負荷テストを実行すると、1秒間に実行できる呼び出しの数など、状況によってパフォーマンスに大きな違いが生じます。

状況1.高価なオブジェクトを削除します:1秒あたりの呼び出し数〜=130。状況2.オブジェクトで通常どおり使用します:レートは1秒あたり〜=2です。

IIS2008サーバーでホストされている.NETWCFサービスがあります。

オブジェクトキャッシュ/プールを作成し、それらのオブジェクトをサービスの各呼び出しに渡す方法があるかどうか疑問に思いました。

この状況を助けるかもしれない考え/コメントはありますか?

4

2 に答える 2

1

WCFサービスをセッションごとのモードで実行し、シングルトンパターンを使用してオブジェクトを作成できます。これにより、呼び出しごとに1回ではなく、セッションごとに1回だけオブジェクトを作成できます。

エンタープライズlibrayキャッシングを使用してオブジェクトをキャッシュできる場合もあります。

于 2010-01-28T20:41:53.383 に答える
1

高価な部分がオブジェクトの状態を構築していて、そのオブジェクトを作成する回数を制限したいだけの場合は、DurableServiceを使用することをお勧めします。

耐久性のあるWCFコンポーネントは、呼び出し間およびクライアント間でその状態を維持します。メソッドを呼び出すたびに、その状態が永続ストアに書き込まれます(デフォルトはSQLサーバーデータベースです)。キャッチは、Durableコンポーネントを呼び出す人の間でコンテキストトークンを渡す必要があることです。このトークンは、ファイルやデータベースなどに永続化できます。

これにより、コンポーネントに対して呼び出しを行うことができ、その状態を1回作成してから、コンテキストトークンにアクセスできる限り、他のクライアントから呼び出し続けることができます。

クライアントが閉じるたびにオブジェクトが消えるので、メモリ内で何もハングしませんが、状態は持続します。

これがチュートリアルです。

于 2010-01-28T22:45:10.490 に答える