7

Tôi đang thực tập và tôi đã được yêu cầu đánh giá các thay đổi về hiệu suất cho Entity Framework 5.0 mới. Cá nhân tôi chưa bao giờ sử dụng Khung thực thể, cũng như tôi không có bất kỳ loại cơ sở dữ liệu hoặc truy vấn lớn nào để thực hiện kiểm tra điểm chuẩn thích hợp.Entity Framework 5.0 Kiểm tra điểm chuẩn

Tôi đã thực hiện một số thử nghiệm đơn giản nhắm mục tiêu đến .NET 4.5 bằng cách sử dụng vòng truy vấn LINQ để thử truy vấn tự động được biên dịch và xem một số loại thay đổi hiệu suất từ ​​khi tôi nhắm mục tiêu đến .NET 4.0. đã không thể nhìn thấy bất kỳ loại thay đổi hiệu suất nào cả.

Có bất kỳ loại thử nghiệm điểm chuẩn đã thực hiện nào cho Khung thực thể có thể hiển thị khi phiên bản mới của khung thực thể có hiệu suất tốt hơn không?

Cảm ơn

+2

Đây có phải là nội dung bạn đang tìm kiếm không? http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx – Kye

+0

Liên kết đó chỉ hiển thị kết quả của một số thử nghiệm không giải thích được . Tôi sẽ cần để có thể thực hiện kiểm tra từ mã, để đánh giá tình huống nào có thay đổi hiệu suất thực tế. – ShikiGami

+0

Bạn có thể dán cũ bạn đang sử dụng vào câu hỏi không? – Kye

Trả lời

5

vài điều:

  • Nếu bạn muốn so sánh sự thay đổi hiệu suất giữa .NET 4 và .NET 4.5 bạn phải có hai máy cho rằng vì .NET 4.5 là nâng cấp tại chỗ. Cài đặt .NET 4.5 trên máy sẽ "loại bỏ" khả năng chạy trên .NET 4.0 cũ (cảm ơn Microsoft vì cơn ác mộng này). Bạn có thể nhắm mục tiêu dự án đến .NET 4 nhưng lúc chạy, bạn sẽ luôn chạy trên .NET 4.5 nếu nó được cài đặt.
  • Tìm cải tiến hiệu suất có thể khá khó khăn vì không có danh sách các thay đổi thực sự trong thế hệ truy vấn nhưng hai lĩnh vực mà bạn nên quan tâm là:
    • Auto biên soạn các truy vấn - Tính năng tự động trong EF5 với .NET 4.5. Tính năng này sẽ cải thiện tốc độ thực thi truy vấn tiếp theo - thực thi đầu tiên sẽ vẫn "chậm" hoặc thậm chí là "chậm hơn" trong .NET 4
    • Tối ưu hóa trong truy vấn Bảng cho mỗi phân cấp. Điều này thường sẽ cải thiện các truy vấn nhắm mục tiêu chỉ một loại trong cấu trúc thừa kế hoặc chỉ chiếu các trường từ thực thể cơ sở. Trong .NET 4, điều này luôn dẫn đến việc gia nhập tất cả các bảng cho các thực thể có nguồn gốc ngay cả khi chúng không cần thiết. Tôi đã không thử cải tiến này, vì vậy tôi sẽ rất vui khi đọc những phát hiện của bạn ở đây.
+0

Cảm ơn bạn, tôi vẫn nghĩ rằng khi tôi nhắm mục tiêu dự án đến .NET 4.0, nó thực sự chạy trên .NET 4.0. Ngay sau khi tôi có một số kết quả thử nghiệm cụ thể, tôi sẽ đăng chúng ở đây. – ShikiGami

+0

Nhắm mục tiêu chỉ hoạt động cho trải nghiệm VS (intellisense và build) nhưng vì các phiên bản .NET 4.5 có cùng phiên bản ** như .NET 4.0, chúng được sử dụng khi chạy. –

+0

Tôi không hiểu tại sao Microsoft lại làm vậy. Nhưng thực sự cảm ơn bạn vì mẹo này, tôi đã dành hầu hết cả ngày cố gắng hiểu tại sao không có sự khác biệt ở tốc độ thực thi tiếp theo với .NET 4.0 trên các truy vấn LINQ to Entities nếu việc biên dịch tự động là một trong những thay đổi được công bố chính cho Entity Framework 5 . – ShikiGami