私のサイトは、Subsonic を使用して ASP.NET MVC3 で記述されており、データベースに約 30k のレコードがあります。すべてのデータベースをキャッシュしました。基本的に私はこれに似た機能を持っています:
public ActionResult UpdateItem(string json, string key)
{
if(Setting.Get("SafeMode").To<bool>()) return;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
var model = ntwgObject.ntwgSerialization.JsonDeserialize<Model.ProductResult>(HttpUtility.UrlDecode(json));
Product p = Product.Get(model.Id);//This method get product by id
if (p == null)
{
p = new Product(){ Name = ".."};
}
p.LastUpdate = DateTime.Now
p.Save();
}
HttpWebRequest
上記の UpdateItem コントローラーにデータを投稿するために使用したソフトウェアがあります。1 秒あたり約 1 ~ 2 件のリクエストがあります。しかし、サイトの読み込みが遅すぎます。私が開く"SafeMode"
(Setting.Get("SafeMode").To<bool>() = True)
と、サイトの読み込みが速くなります。
これは奇妙です。HttpWebRequest
オブジェクト経由のリクエストが少ないと、サイトの読み込みが遅くなるのだろうか?何らかの理由で GC.Collect() メソッドを使用しました。多分これも問題ですか?