如果有大型 Web 應用程式,可考慮執行預批編譯

2021-08-29 03:13:38 字數 676 閱讀 1301

每當發生對目錄的第一次請求時都會執行批編譯。如果目錄中的頁面沒有被分析並編譯,此功能會成批分析並編譯目錄中的所有頁面,以便更好地利用磁碟和記憶體。如果這需要很長時間,則將快速分析並編譯單個頁面,以便請求能被處理。此功能帶給 asp.net 效能上的好處,因為它將許多頁面編譯為單個程式集。從已載入的程式集訪問一頁比每頁載入新的程式集要快。

批編譯的缺點在於:如果伺服器接收到許多對尚未編譯的頁面的請求,那麼當 web 伺服器分析並編譯它們時,效能可能較差。為解決這個問題,可以執行預批編譯。為此,只需在應用程式啟用之前向它請求乙個頁面,無論哪頁均可。然後,當使用者首次訪問您的站點時,頁面及其程式集將已被編譯。

沒有簡單的機制可以知道批編譯何時發生。需一直等到 cpu 空閒或者沒有更多的編譯器程序(例如 csc.exe(c# 編譯器)或 vbc.exe(visual basic 編譯器))啟動。

還應盡量避免更改應用程式的 \bin 目錄中的程式集。更改頁面會導致重新分析和編譯該頁,而替換 \bin 目錄中的程式集則會導致完全重新批編譯該目錄。

在包含許多頁面的大規模站點上,更好的辦法可能是根據計畫替換頁面或程式集的頻繁程度來設計不同的目錄結構。不常更改的頁面可以儲存在同一目錄中並在特定的時間進行預批編譯。經常更改的頁面應在它們自己的目錄中(每個目錄最多幾百頁)以便快速編譯。

web 應用程式可以包含許多子目錄。批編譯發生在目錄級,而不是應用程式級。

如果有大型 Web 應用程式,可考慮執行預批編譯

每當發生對目錄的第一次請求時都會執行批編譯。如果目錄中的頁面沒有被分析並編譯,此功能會成批分析並編譯目錄中的所有頁面,以便更好地利用磁碟和記憶體。如果這需要很長時間,則將快速分析並編譯單個頁面,以便請求能被處理。此功能帶給 asp.效能上的好處,因為它將許多頁面編譯為單個程式集。從已載入的程式集訪問...

如果有大型 Web 應用程式,可考慮執行預批編譯

每當發生對目錄的第一次請求時都會執行批編譯。如果目錄中的頁面沒有被分析並編譯,此功能會成批分析並編譯目錄中的所有頁面,以便更好地利用磁碟和記憶體。如果這需要很長時間,則將快速分析並編譯單個頁面,以便請求能被處理。此功能帶給 asp.net 效能上的好處,因為它將許多頁面編譯為單個程式集。從已載入的程...

如果有大型 Web 應用程式,可考慮執行預批編譯

每當發生對目錄的第一次請求時都會執行批編譯。如果目錄中的頁面沒有被分析並編譯,此功能會成批分析並編譯目錄中的所有頁面,以便更好地利用磁碟和記憶體。如果這需要很長時間,則將快速分析並編譯單個頁面,以便請求能被處理。此功能帶給 asp.net 效能上的好處,因為它將許多頁面編譯為單個程式集。從已載入的程...