哪一個性能更好? ADO.NET或實體框架。性能分析ADO.NET和實體框架
這些是我想分析的兩種方法。
ADO.NET測試方法
public void ADOTest()
{
Stopwatch stopwatch = Stopwatch.StartNew();
using (SqlConnection con = new SqlConnection(connection))
{
string Query = "select * from Product ";
SqlDataAdapter da = new SqlDataAdapter(Query, con);
DataSet ds = new DataSet();
con.Open();
da.Fill(ds);
DataView dv = ds.Tables[0].DefaultView;
}
stopwatch.Stop();
Console.WriteLine("ADO.NET Time Elapsed={0}", stopwatch.Elapsed);
}
實體框架的測試方法
public void EFTest()
{
Stopwatch stopwatch = Stopwatch.StartNew();
var list = _OnlineStoreEntities.Products.ToList();
stopwatch.Stop();
Console.WriteLine("Entity Framework Elapsed={0}", stopwatch.Elapsed);
}
結果在第一次執行
當我在更多跑這上面的方法比100倍。的平均執行時間被示出在圖像中:
ADO.NET只用了2毫秒實體框架是否花了超過4毫秒。
結果在第二次執行
當我在一次運行中一次又一次跑了這種方法。 ADO.NET和EF之間的平均執行時間是不是更多:
問題
- 我認爲EF給出了第一次執行最糟糕的表現那麼爲什麼我們使用EF?
- 爲什麼EF第二次執行比第一次執行更快?
https://stackoverflow.com/questions/15107992/performance-analyze-ado-net-and-entity-framework – Omkar 2018-02-23 12:08:49