7

我做實習,我一直在問,以評估新的實體框架5.0的性能變化。 我個人從未使用實體框架,也沒有任何一種大數據庫或查詢來做適當的基準測試。實體框架5.0基準測試

我一直在做一些簡單的測試使用LINQ查詢的循環靶向.NET 4.5,以嘗試獲得查詢自動編譯和看到一些來自我定位到.NET 4.0樣的性能變化,但我根本無法看到任何性能改變。

是否有實體框架的任何類型的已經做基準測試的這可能表明,當實體框架的新版本有更好的表現?

感謝

+2

這是你要找的嗎? http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx – Kye

+0

這種聯繫只是給出了一些原因不明的測試結果。 我需要能夠從代碼執行測試,以評估哪些情況下有任何實際的性能變化。 – ShikiGami

+0

你可以將你正在使用的舊版本粘貼到問題中嗎? – Kye

回答

5

幾件事情:

  • 如果你想比較.NET 4和.NET 4.5之間的性能變化,你必須有兩個機器因爲.NET 4.5是就地升級。在機器上安裝.NET 4.5將「刪除」在舊.NET 4.0上運行的可能性(感謝微軟的這個噩夢)。您可以將項目定位到.NET 4,但在運行時您將始終在.NET 4.5上運行(如果已安裝)。
  • 查找性能改進可以說是相當困難的,因爲沒有在查詢生成真正的變化,但應你感興趣的兩個領域列表:
    • 自動編譯查詢 - EF5中的自動功能,與.NET 4.5。此功能應該提高查詢的後續執行速度 - 首次執行將還是「慢」或者甚至比.NET 4
    • 優化表每層次查詢「慢」。這通常應該改進針對繼承結構中的單一類型的查詢或僅投影基本實體的字段。在.NET 4中,即使不需要它們,也總是會導致爲派生實體加入所有表。我沒有嘗試這種改進,所以我會很樂意在這裏閱讀你的發現。
+0

謝謝之間的性能差異,我還在想,當我有針對性的項目到.NET 4.0,它實際上跑了.NET 4.0。只要我有一些具體的測試結果,我會在這裏發佈。 – ShikiGami

+0

該定位僅適用於VS體驗(智能感知和構建),但因爲.NET 4.5程序集具有與.NET 4.0相同的版本**,所以它們在運行時使用。 –

+0

我不明白爲什麼微軟會這麼做。但是真的非常感謝你的提示,我花了幾乎整整一天的時間來試圖理解爲什麼在.NET 4.0的LINQ to Entities查詢的後續執行速度上沒有什麼區別,如果自動編譯是實體框架5的主要變更之一。 – ShikiGami