Cái nào mang lại hiệu suất tốt hơn? ADO.NET hoặc khung thực thể.Hiệu suất phân tích ADO.NET và Entity Framework
Đây là hai phương pháp tôi muốn phân tích.
ADO.NET Phương pháp thử Phương pháp
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);
}
Entity Framework thử nghiệm
public void EFTest()
{
Stopwatch stopwatch = Stopwatch.StartNew();
var list = _OnlineStoreEntities.Products.ToList();
stopwatch.Stop();
Console.WriteLine("Entity Framework Elapsed={0}", stopwatch.Elapsed);
}
quả trong thực hiện lần đầu tiên
Khi tôi chạy phương pháp trên đây trong hơn hơn 100 lần. Thời gian thực hiện trung bình được thể hiện trong hình ảnh:
ADO.NET chỉ mất 2 mili giây liệu Entity Framework mất hơn 4 mili giây.
quả trong thực hiện lần thứ hai
Khi tôi chạy phương pháp này một lần nữa và một lần nữa trong chạy duy nhất. Thời gian thực hiện trung bình giữa ADO.NET và EF không phải là nhiều hơn nữa:
Câu hỏi
- Tôi nghĩ EF mang lại cho hiệu suất rất tồi tệ nhất trong thực hiện lần đầu tiên thì tại sao chúng ta sử dụng EF?
- Tại sao thực hiện lần thứ hai của EF nhanh hơn lần thực hiện lần đầu?
https://stackoverflow.com/questions/15107992/performance-analyze-ado-net-and-entity-framework – Omkar