3

如果設置爲可更新,預編譯asp.net Web應用程序是否有任何性能優勢?通過設置預編譯器可更新標誌,它不會預編譯aspx,ascx等,因此仍然必須在首次加載時在運行時進行編譯。儘管如此,ASP.NET Web應用程序項目中的其他任何內容都已經編譯好了,那麼在可執行文件的可更新標誌設置爲true的情況下在WAP上運行預編譯程序有什麼意義?預編譯Web應用程序項目的性能優勢是否可更新?

回答

0

從我可以告訴在這種特定情況下,由於問題中列出的原因,將WAP設置爲可更新時,預編譯WAP時沒有性能優勢。

1

唯一的性能優勢是它爲您的ASPX和ASCX文件預編譯相關的代碼隱藏文件。

+0

使用Web Application Projects時,代碼隱藏文件已經預編譯。 http://msdn.microsoft.com/en-us/library/aa983464.aspx – EricAppel 2009-11-05 21:28:12

0

通過將服務器端代碼編譯爲Web服務器上的一個或多個DLL文件,ASP.NET的目標是通過將其他基於腳本的技術(包括經典ASP)進行性能優勢。該編譯在第一次請求頁面時自動發生(這意味着開發人員不需要爲頁面執行單獨的編譯步驟)。此功能提供了腳本語言提供的開發簡便性以及已編譯二進制文件的性能優勢。但是,當首次向Web服務器請求新編輯的頁面時,編譯可能會對Web用戶造成明顯但短暫的延遲,但除非所請求的頁面進一步更新,否則不會再次發生。

將ASPX和其他資源文件放置在Internet Information Services服務器(或其他兼容的ASP.NET服務器;請參閱下面的其他實現)上的虛擬主機中。客戶端第一次請求頁面時,.NET框架將文件解析並編譯爲.NET程序集併發送響應;隨後的請求由DLL文件提供。默認情況下,ASP.NET會在首次請求時以1000個文件批量編譯整個站點。如果編譯延遲導致問題,則可以調整批量大小或編譯策略。

開發人員還可以選擇在部署之前預編譯其代碼,從而不需要在生產環境中進行即時編譯。這也消除了在Web服務器上擁有源代碼的需要。

(直接從維基百科頁面中獲取)將代碼編譯爲腳本代碼(例如php或class ASP)的好處的一個很好的解釋。

相關問題