Entity Framework的啟動速度優化

2022-07-18 19:30:22 字數 2965 閱讀 3295

下面提到的方法,有很多需要entity framework版本的支援,所以我們在使用entity framework的時候,最好使用最新版本。

這種方式不受ef的版本限制。

}經過以上處理,大概程式初次查詢db從之前的6s下降到了3s左右。

除了以上優化之外,對於ef6.0及之後的版本,可以使用ngen處理來進一步提高速度。

相關優化可以檢視這篇文章improving startup performance with ngen (ef6 onwards),下面這條方法,主要是針對ef6及以上版本的,因為低於這個版本的自帶該特性,在這篇文章裡說的很清楚「在6.0之前的ef中,ef的執行時核心類庫也是.net框架的一部分,其本地映像在.net 核心類庫載入時自動載入,在6.0及之後的版本,ef整個執行時已經被整合到entityframework nuget包中,本地映像需要使用ngen工具來生成才能達到類似的效果」。

提到這裡,首先要說一下ngen這個工具的作用以及為什麼能夠加快應用程式的啟動效能。.net 框架支援為託管應用或者程式集生成本地映像檔案來幫助應用程式更快啟動和在一些情況下減少記憶體占用。在應用程式執行之前,通過將託管**程式集翻譯為包含本地機器指令的檔案,能夠減少.net jit編譯器在應用程式啟動的時候,生成本地指令**這一過程,從而能夠加快應用程式啟動。

使用ngen也很簡單

1:以管理員身份啟動控制台cmd程式

2:切換到本機.net 工具目錄下:

對於32位機器,通常在%windir%\microsoft.net\framework\v4.0.30319\下

對於64位機器,通常在 %windir%\microsoft.net\framework64\v4.0.30319\下

3:然後執行 ngen install 加上程式集的路徑和名稱,即可。

比如在我的機器上,可以看到如下:

經過這一操作,首次訪問db的速度終於控制到了500ms以內。

以上是ef的優化,解決了首次部署之後,第一次訪問資料庫的問題,對於應用程式放置一會兒,再次請求由於執行緒池**導致再次訪問變慢的問題,通過設定iis解決。

將服務或者站點部署到iis上之後,在對應的執行緒池裡有兩個地方可以設定,如下圖:

這樣設定之後就可以解決第二個問題。

本文簡單介紹了優化entityframework初次啟動速度的方法,以及為防止iis執行緒超時閒置,以及例常執行緒**導致的初次執行時間過長的解決方法,希望對您解決上述問題有所幫助。

下面提到的方法,有很多需要entity framework版本的支援,所以我們在使用entity framework的時候,最好使用最新版本。

這種方式不受ef的版本限制。

}經過以上處理,大概程式初次查詢db從之前的6s下降到了3s左右。

除了以上優化之外,對於ef6.0及之後的版本,可以使用ngen處理來進一步提高速度。

相關優化可以檢視這篇文章improving startup performance with ngen (ef6 onwards),下面這條方法,主要是針對ef6及以上版本的,因為低於這個版本的自帶該特性,在這篇文章裡說的很清楚「在6.0之前的ef中,ef的執行時核心類庫也是.net框架的一部分,其本地映像在.net 核心類庫載入時自動載入,在6.0及之後的版本,ef整個執行時已經被整合到entityframework nuget包中,本地映像需要使用ngen工具來生成才能達到類似的效果」。

提到這裡,首先要說一下ngen這個工具的作用以及為什麼能夠加快應用程式的啟動效能。.net 框架支援為託管應用或者程式集生成本地映像檔案來幫助應用程式更快啟動和在一些情況下減少記憶體占用。在應用程式執行之前,通過將託管**程式集翻譯為包含本地機器指令的檔案,能夠減少.net jit編譯器在應用程式啟動的時候,生成本地指令**這一過程,從而能夠加快應用程式啟動。

使用ngen也很簡單

1:以管理員身份啟動控制台cmd程式

2:切換到本機.net 工具目錄下:

對於32位機器,通常在%windir%\microsoft.net\framework\v4.0.30319\下

對於64位機器,通常在 %windir%\microsoft.net\framework64\v4.0.30319\下

3:然後執行 ngen install 加上程式集的路徑和名稱,即可。

比如在我的機器上,可以看到如下:

經過這一操作,首次訪問db的速度終於控制到了500ms以內。

以上是ef的優化,解決了首次部署之後,第一次訪問資料庫的問題,對於應用程式放置一會兒,再次請求由於執行緒池**導致再次訪問變慢的問題,通過設定iis解決。

將服務或者站點部署到iis上之後,在對應的執行緒池裡有兩個地方可以設定,如下圖:

這樣設定之後就可以解決第二個問題。

本文簡單介紹了優化entityframework初次啟動速度的方法,以及為防止iis執行緒超時閒置,以及例常執行緒**導致的初次執行時間過長的解決方法,希望對您解決上述問題有所幫助。

Entity Framework 架構簡介

當微軟的wcf 大行其道,通用資料訪問模型entity framework卻稍遜一籌,有很多需要完善和進步的地方,本文對entity framework 架構做一下簡介。實體框架 entitry framework 以下簡稱ef 看起來像乙個有趣的技術,更強大,比linq to sql 更先進。這兩...

entity framework 批量刪除

以前用sql寫批量刪除的時候,感覺挺利索的,簡潔地寫了 public bool delectusersuggest string addsql 然後在頁面層直接呼叫 現在用entity framework,感覺有點麻煩不能直接delete,還要先把資料查出來,以下是主要 1 先查出實體 region...

Entity Framework 動態查詢

不想多說什麼直接說 region 搜尋並分頁 ljy 傳入搜尋條件,當前頁碼,每頁的顯示的條數,資料的總數 輸出引數 三個引數,返回 商實體 搜尋條件 當前頁碼 每頁的顯示的條數 資料的總數 public iqueryable endregion 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...