我的网站使用 ASP.NET MVC3 编写,使用 Subsonic,并且在数据库中有大约 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 - 2 个请求。但是网站加载太慢了。如果我打开"SafeMode"
(Setting.Get("SafeMode").To<bool>() = True)
然后网站加载速度很快。
这很奇怪。我想知道当通过HttpWebRequest
对象的请求很少时网站加载是否缓慢?出于某种原因,我使用了 GC.Collect() 方法。也许这也是问题?