データベース(SQL2008)から画像をストリーミングするこのサイトがありますが、これがサーバーのCPU使用率を非常に高くしているサイトだと思います。CPU使用率は少なくとも60〜90%です。
私はMVC3を使用しており、以下は画像をビューに送信するコントローラーのコードです。
[OutputCache(Duration = 86400, VaryByParam = "GUID")]
public FileStreamResult GetFile(string guid)
{
Guid id = new Guid(guid);
Thumbnail thumbnail = thumbService.GetThumbnailByGUID(id);
Stream stream = new MemoryStream(thumbnail.FileContent.ToArray());
var fsr = new FileStreamResult(stream, "image");
return fsr;
}
景色:
<div style="background:url('@url');background-repeat:no-repeat;background-position:50% top;background-color:#fff;" class="photoThumb">
上記の@urlは/GetFile/guidです
誰かが私が間違っていることを教えてもらえますか?
ありがとう
回答と別の質問に関する最新情報:
以下の回答の[OutputCache(Duration = 86400、VaryByParam = "GUID")]が機能し、サイトのパフォーマンスが向上しました。CPU使用率は8〜60%に低下しましたが、すべてが破棄されていることも確認したいので、FileStreamResultがそれを実行しているかどうか、または手動で実行する必要がありますか?