我最近在詢問我目前工作的地方前首席開發員,爲什麼他選擇使用剃刀發電機到一個單獨的程序預編譯我們的意見。剃刀發電機:這是否準確?
他下面提出了一些要求,但我似乎無法找到任何剃刀發電機型材和/或度量網絡備份的要求上(快10-100倍),和/或,如果什麼IIS7/ASP.NET在幕後有關預編譯視圖和運行時編譯視圖及其好處或缺乏。
任何人都可以指向正確的方向嗎?還是評論?
在我看來,(只要啓動時間而言)簡單地設置IIS autostart = true
的網站會平衡掉的使用剃刀發電機預編譯任何好處。這是他的聲明:
爲什麼我們使用Razor Generator來預編譯視圖,爲什麼把它們放在一個單獨的程序集中?
第一個是簡單的編譯時錯誤檢查。有了這許多意見 它似乎是避免生產錯誤的好方法。這有點 沮喪不得不重新編譯看到我 承認的意見的變化,但它是(在我看來)完全值得知道你 有更多的錯誤檢查前期。
第二個問題是,當視圖未在項目中編譯時,它們在運行時得到編譯,然後編譯的表示將 存儲在ram中。有時,如果他們不是經常訪問 (這是大多數這樣的意見,因爲有這麼多) 那些存儲的編譯版本被廢棄和垃圾收集到 保存ram。因此,除了最頻繁訪問的網站(如 gaf.com)之外的所有視圖最終都會在每次訪問時重新編譯。但如果 你把他們放在一個項目編譯版本只需要從dll加載 如果它尚未在內存中(是的代碼可以是垃圾 也收集了,但較少)。從dll加載10 - 100 快(這是來自Razor Generator項目的網站 - 我 沒有自己驗證,但這聽起來很合理)。
他的所有觀點都是技術性的。隨時閱讀我的經驗和解決方案http://stackoverflow.com/questions/14866711/asp-net-mvc-mvcbuildviews-increasing-compile-time-drastically/14867003#14867003 –
爲什麼不把它作爲迴應,所以我可以將其標記爲答案,如果您拋出如何預編譯堆棧直至iis7自動啓動? – gangelo
我希望這能說明問題... –