この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 5163|答える: 5

[.NET Core] ASP.NET コア(18) シンプルなOutputCache出力キャッシュをカスタマイズする

[リンクをコピー]
2023年5月7日 21:42:06に投稿 | | | |
要件:.NET Framework内で1つ用意してくださいOutputCacheAttributeこの機能(出力のキャッシュ処理方法を示すために使われます)は、頻繁にアクセスされるデータやあまり頻繁に変更されないデータをメモリに保存し、レスポンス内容を直接出力することで、ウェブサイトの並行性を向上させ、サーバーやデータベースへの負荷を軽減できます。 この機能は.NET 7で再導入されました。





ASP.NET Coreでのキャッシュミドルウェアの出力:ハイパーリンクのログインが見えます。

出力キャッシュの原理:各リクエストはまずキャッシュに存在するかを判断し、存在しなければ応答の内容をキャッシュに書き込み、その後応答を出力します。キャッシュが存在する場合、データ出力応答はキャッシュから直接取得されます。 出力キャッシュ経由データベースのクエリを減らし、一部の論理操作を減らし、キャッシュから直接フェッチすることで、並行性と応答性の両方が向上します

.NET 6にはOutputCacheAttribute機能がないため、私たち自身でシンプルな出力キャッシュを実装できます。


出力キャッシュがない場合、ストレステストの結果は以下の通りです(プロジェクトデータベースは香港サーバーに接続されています):



ストレステスト結果:1秒間に10回の同時実行のみ許可(データベース転送が遅い)。

出力キャッシュを追加しようとするには、まず新しいOutputCacheAttribute機能を作成し、コードは以下の通りです:

リクエストをブロックするために新しいOutputCacheMiddlewareミドルウェアを作成し、コードは以下の通りです:

以下のコードでUseOutputCacheExtensionsミドルウェアをProgram.csに追加します:

最後に、以下のコードでコントローラーメソッドに機能を追加します。

圧力試験を用いても可能です1秒間に10,000以上の同時接続、下図に示されているように:

cassowary.exe run -u http://localhost:5222/zh-cn -c 50 -n 100000



CassowaryのHTTPリクエストストレステストツール
https://www.itsvse.com/thread-10557-1-1.html
(終わり)




先の:[ターン]。 NET 8 新たに追加された高性能タイプ
次に:.NET Coreの高性能キューチャネルが使用されています
 地主| 2023年5月7日 21:50:45 に投稿 |

復習

ASP.NET Core(17)はMiniProfileアプリケーションパフォーマンス分析を統合しています
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET コア(16) 動的登録サービスの注入に依存
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core(XV)はHttpClientを使ってHTTPリクエストを送信します
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core(14)はSkiaSharpの画像キャプチャに基づいています
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core(XIII)で、それがAjaxリクエストかどうかを判定します
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET コア(12)フロントエンドJS、CSSバンドル、圧縮
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core(XI)エンドポイントルートは、すべてのDIサービスを表示するためのミドルウェアを追加します
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Core(10)における構成優先度の詳細な説明。
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Core (9)のミドルウェアミドルウェアの詳細な説明。
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET コアミドルウェアの詳細な説明
https://www.itsvse.com/thread-8126-1-1.html

Core(8)のSwagger UIのデフォルトパラメータの穴 ASP.NET。
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET コア(7) フレームワークソースコードの詳細な分析
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DIはオブジェクト注入の方法を手動で取得します
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET コア(5)はCAP分散トランザクションに基づいています
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) フィルター 統一モデルステートモデル検証
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET コア(iii) ActivatorUtilitiesを用いて動的にインスタンスを作成する
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET コア(2) コードによるアプリケーションの再起動
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core(1)はRedisキャッシュを使用しています
https://www.itsvse.com/thread-9393-1-1.html
 地主| 2023年5月7日 21:53:14に投稿 |
asp.net OutputCacheのキャッシュフラッシュ無効化設定について
https://www.itsvse.com/thread-5843-1-1.html

ASP.NET OutputCache キャッシュ web.config パラメータ設定
https://www.itsvse.com/thread-4917-1-1.html

mvc キャッシュ OutputCacheプロパティの正しい使用方法VaryByParam
https://www.itsvse.com/thread-3488-1-1.html
2023年5月8日 09:37:41に投稿 |
学ぶために
2023年5月17日 10:37:28に投稿 |
HTTPステータスコード:204 コンテンツなし

204 コンテンツなし:サーバーはリクエストを処理することに成功しましたが、何も返されませんでした。

レスポンス本体への書き込みは、ステータスコード204のレスポンスには無効です。
 地主| 2023年6月22日 13:20:52 に投稿 |
HttpRequest.BodyReaderプロパティ:https://learn.microsoft.com/zh-c ... prequest.bodyreader

HttpResponse.BodyWriterプロパティ:https://learn.microsoft.com/zh-c ... response.bodywriter
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com