EF初次啟動慢

2022-02-16 17:34:46 字數 2068 閱讀 8680

ef第一次查詢很慢,大約在2s左右,第二次及之後就變快了。

efcore第一次查詢大約也有1s左右。

而用ado.net第一次查詢也就只有100ms。

測試結果(ef和ado.net):

測試**如下:

using

system;

using

system.collections.generic;

using

system.componentmodel.dataannotations;

using

system.componentmodel.dataannotations.schema;

using

system.data;

using

system.data.entity;

using

system.data.sqlclient;

using

system.diagnostics;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

private

static

void

testado()

conn.close();

}catch

(exception err)

}console.writeline(

"the ado.net query1:

" + stopwatch.elapsedmilliseconds + "

millisecond.");

stopwatch.restart();

using (sqlconnection conn = new

sqlconnection(connstring))

conn.close();

}catch

(exception err)

}stopwatch.stop();

console.writeline(

"the ado.net query1:

" + stopwatch.elapsedmilliseconds + "

millisecond.");

}private

static

void

testef()

}public

class

datacontext : dbcontext

public dbsetmembers

public dbsetmemberprojects

}[table(

"member")]

public

class

member

}[table(

"memberproject")]

public

class

memberproject}}

親測可用,優化後第一次查詢大概200ms

操作步驟:

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

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

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

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

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

cd c:\windows\microsoft.net\framework\v4.0.30319 

但是該方案對efcore無效,搜尋很久,找不到關於efcore的優化方案。

參考資料:

mysql啟動配置 mysql初次啟動相關配置

一 啟動mysql服務 使用mysql之前,首先要啟動mysql伺服器端。使用命令mysqld。在命令列終端先進入mysql安裝的目錄直到bin目錄,如圖 執行這個命令,可能會報錯,提示找不到data目錄 建立完成再執行上面的命令,此時這一步完成。但是僅僅執行了mysqld是不夠的,客戶端要連線服務...

EF優化之啟動預熱

為什麼entity framework的初始化速度慢如蝸牛呢?private void 對程式中定義的所有dbcontext逐一進行這個操作 在程式更新時只需發乙個請求讓程式啟動起來,比如訪問首頁,就可以直接發布。而第1位使用者,等待時間由原來7秒減少到0.5 0.6秒。使用了ef的code fir...

TCP 慢啟動簡介

內容絕對正確,所 以請讀者抱著懷疑的態度閱讀本部落格內的文字。如果讀 者因本部落格內的文字造成損失,本人 無力負責。如果有任何謬誤或者問題,希望讀者不吝賜教。在廣域網,tcp報文可能要經過多個路由器和速率較慢的鏈路。如果傳送方一開始就向網路 傳送多個報文段,則中間路由器的緩衝負擔會立刻加重,很可能致...