実際、SO が質問するのに適切な場所かどうかはわかりませんが、これほど多くのプロの開発者がいる別の場所を知りません。
分散アプリケーションを開発する場合、.NET がメモリをより効率的に管理できるようにするために、大きなオブジェクトに「通信ページング」を実装することが重要だと聞きました。 ~80KB) より多くの時間をメモリに残します。
つまり、「Context」というクライアント オブジェクトと「Provider」というサーバー オブジェクトがあるとします。WCF TCP バインディングとバイナリ シリアル化を使用して実装されたクライアントとサーバー間の通信。ここで、Context は Server に要求を出し、複雑なオブジェクトのリストを取得します。そのリストのメモリ サイズは 300KB 以上であり、サーバーはそのリストのさまざまなインスタンスに対して 1 秒あたり多くのリクエストを受け取る可能性があります。つまり、小さな (~80KB) オブジェクトを操作するには、(X / 80KB) リクエストのリクエストを分割する必要があるということです。
実際、私が働いている会社の CTO は、その通信ページングのロジックを Context と Provider に実装するように求めています。つまり、既に受信したデータに関する情報を使用して Provider に X 要求を行う Context でループを作成し、Provider でリストをチャンクで送信するロジックを作成します。
私にとっては非常に奇妙に聞こえます...とにかく、サーバー上のメモリに既に大きなオブジェクトがあり、より多くのリクエストを行うと、より多くのCPU、ネットワーク、および追加のメモリを使用してすべての通信を管理するためです。
その興味深いケースを処理する方法や、WCF での大きなオブジェクトの転送についてどこで読むことができるかを誰かに説明してもらえますか?
ありがとう