Visual Studio からのメモリ ダンプで概説されている動作の種類を教えてください。
正常です?たとえば、StackExchange.Redis.PhysicalConnection は包括的サイズ (バイト) でそれほど高く実行されますか? それとも本当に高いの?
基本的に、セッションから Azure Redis で実行するようにコードを変換した後、Web ヘッドで速度低下が発生しています (現在、必要に応じてシリアル化および逆シリアル化し、Redis キャッシュに格納しています) が、全体的なパフォーマンスはひどいものです。
リクエストは完了しますが、時間がかかる場合があります。これは、Redis のシングル スレッドの性質によるものですか? ここで概説されているように、Azure Redis チームによるベスト プラクティスとして概説されている構成を使用していますhttps://stackoverflow.com/a/28821220
現在のパフォーマンスは、現在使用しているセッション ベースの実装 (asp.net webforms/sql server/azure IaaS) の実行可能な代替品として受け入れられないため、パフォーマンスを向上させるために他に何ができるでしょうか。
PS - シリアライゼーションとデシリアライゼーションはヒットを引き起こします。IIS がシリアライズされていないデータセットなどのための独自の特別なメモリ プールで私たちを台無しにしたことは理解していますが、ページの読み込みが 300 ~ 500% 増加することはありません。今は私たちのためです。
考えていただければ幸いです!
@ティム・ウィーマン
キャッシュされたオブジェクトの大きさは? それらのサイズはさまざまで、redis に保存されているデータセットがいくつかあります。
それらはどのような種類のオブジェクトですか? ほとんどのオブジェクトは可変数のプロパティを持つカスタム オブジェクトであり、コレクションを含むものもあります。
どのシリアライザを使用していますか? Rowstate を必要としないものには Newtonsoft を使用し、rowstate を必要とするデータセットには必要なバイナリ シリアライザーを使用しています。
すべてのシリアル化とそれに続く逆シリアル化は、redis データベースの StringGet または StringSet を呼び出す前にコードで行われます。