為什麼entity framework的初始化速度慢如蝸牛呢?
private在程式更新時只需發乙個請求讓程式啟動起來,比如訪問首頁,就可以直接發布。而第1位使用者,等待時間由原來7秒減少到0.5-0.6秒。void
//對程式中定義的所有dbcontext逐一進行這個操作
}
使用了ef的code first會在第一次ef查詢的時候會對__migrationhistory訪問,是為了檢查資料庫和model是否匹配,以保證ef能正常執行。
通過監測會先執行下面的sql:
select這段sql語句其實中只是在開發的時候有用,發布到生產環境,可以把這個給禁用了以提高效能。[groupby1
].[a1]as
[c1]from ( select
count(1) as[a1
]from
[dbo
].[__migrationhistory]as
[extent1])
as[groupby1]go
select
top (1)[
extent1
].[id]as
[id],
[extent1
].[modelhash]as
[modelhash
]from
[dbo
].[edmmetadata]as
[extent1
]orderby[
extent1
].[id
]desc
go
protectedmmisdbcontext這是我專案的ef上下方類,你要根據你的專案替換成自己的ef上下方類。void
這是在iis8出來後才有的,iis8內建的功能,一些是iis10的配置圖
而對於iis7.5也提供了乙個擴充套件以支援這個功能。
在頁面接近底部的地方,找到適合自己架構的安裝鏈結
安裝這個iis模組後,在iis介面中並沒有模組圖示和配置介面,還需要安裝:
安裝成功之後會多了乙個配置如下圖:
如果僅配置程式池startmode為alwaysrunning還不放心的話,
設定應用程式池如下圖:
設定**如下圖
配置好後,測試了下,效果十分不錯。 **程式池後首次開啟各站點,延遲都很低。 其實這個模組的思路和定時從外部觸發乙個訪問是一樣的,只是,更好的地方在於,它本身在程式池**重啟的時候就完成了這件事,而不會讓外部訪問有機會遇到首次訪問的情況。
1、開啟cmd視窗
2、定位到dll所在的目錄,如:cd d:\website1\bin,切換到程式的bin目錄。
3、執行ngen命令
for 32注意:這裡根據你自己機器(是32還是64)和.net版本,選擇相應的命令,只需要安裝entityframework.sqlserver.dll,因為安依賴entityframework.dll,會自動安裝生成entityframework.dll的本地映象。bit run:
%windir%\microsoft.net\framework\v4.0.30319
\ngen install entityframework.sqlserver.dll
for
64bit run:
%windir%\microsoft.net\framework64\v4.0.30319\ngen install entityframework.sqlserver.dll
4.檢視是否在本機映像快取中,也列出了依賴子的相關類庫
%windir%\microsoft.net\framework64\v4.0.30319\ngen display entityframework文件:
如果你覺得這還沒有解決」過了一段時間不訪問頁面然後再次開啟頁面變慢「的問題,而且不能忍受第一次訪問還是有點慢,可以設定應用程式池的」閒時超時「和**」固定時間間隔「長一些或者建乙個計畫任務定時去訪問使用了ef的頁面,這樣給ef熱身,讓ef不變冷,這樣可以防止長時間不請求**,應用程式程序停止再次訪問變慢的問題。設定應用程式池的時間如下圖:
閒時超時預設是20分鐘,如果在超過20分鐘都沒有請求這個應用程式池工作程序就要關閉。這裡你可以設定根據自己需要設定長一些。
用vs建乙個mvc專案,model、dal、controller、view都在web專案裡面。為了減少model和dal導致重新編譯dll帶來的效能影響。我把model和dal都單獨的分層,編譯成單獨的dll了。
這一點,我比較不理解,路過的高手請指點下
原文:
Orchard站點效能優化 預熱
orchard cms 包含乙個warmup module模組,當我們的站點在共享主機上的時候,它可以顯著的幫助我們快速響應使用者訪問請求.當你開啟這個模組以後,你設定的url的裡面的內容會快取起來,然後週期性的 熱身 1.開啟warmup module 模組 進入dashboard modules...
EF初次啟動慢
ef第一次查詢很慢,大約在2s左右,第二次及之後就變快了。efcore第一次查詢大約也有1s左右。而用ado.net第一次查詢也就只有100ms。測試結果 ef和ado.net 測試 如下 using system using system.collections.generic using sys...
android效能優化之啟動優化
解決方案 null null true drawable bg splash必要且耗時 mutidex 必要不耗時 首頁繪製 非必要耗時 資料上報,外掛程式初始化 非必要不耗時 直接去掉,需要時再載入。其他第三方元件的初始化 檢視日誌 將手機連線到android studio上,開啟logcat,不...