私が引き起こしているのか理解していないが、このような「クロックワーク」サイクルには、何もない現実のシステムを参照してくださいすることは非常に稀であり、「100秒ごとに第二世代の収集を行いました」。
メモリ負荷が高く、多くのオブジェクトを使用している場合、はい:GCがビジー状態になる場合があります.GEN-2に当たっていると、中/長寿命のオブジェクトがぶら下がっている...あなたはおそらくより多くのオブジェクトを生成しています。若いヒープに一度に収まるか、メモリリークがあります。
あなたには漏れがないと仮定すると、memory profilerでチェックしましたか?また、不要なゴミをたくさん作っていないと仮定しています(例:ループの内部にstring1 + = string2)。
私はかもしれない助けて2つのことを考えることができます。
リクエスト(スレッド)Asp.netプロセスの数を同時に制限することで、ライブオブジェクトの数を制限し、単一のリクエストの処理速度を上げることができます。 (多くのスレッドコンタクトスイッチを取得していますか?)
オブジェクトをAsp.netキャッシュおよび/またはAsp.netセッションに格納する場合。 Asp.netセッションサーバー、サードパーティ製セッションサーバー、memcache、またはMicrosoftから最近公開されたキャッシュサーバー(Velocity)など、このキャッシュ情報にアウトプロセスストアを使用することができます。必要なときにデータベースからデータを読み直すだけで、それを長期間のオブジェクトに格納するほうが良いかもしれません。
上記に失敗した場合、どのくらいのメモリを使用していますか?あなたはx64とたくさんの記憶を考えていただけますか?またはWebファーム..
これ以上のGC制御が必要な場合は、おそらくC#やVB.netなどの管理言語を使用すべきではありません。 これ以上のGCを作成していないし、既に.netに入っているものはありません。多くは試みました。すべてが失敗しました。 = P – Tony
独自のガベージコレクタを作成するときは、自分のニーズに合わせて自由にカスタマイズすることができます。これは、.NETフレームワークの開発者が直面している問題よりもはるかに単純な問題になることがあります。その1つの特定の点以外は、私はトニーと概ね同意します。 –