哪一个性能更好? 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