簡體   English   中英

在MVC3頁面中包含RenderPartial的開銷是多少

[英]What's the overhead of including RenderPartial in an MVC3 page

我正在盡可能地優化我的代碼。 我使用了很多這樣的部分文件:

@if (Model.PageMeta.Sidebar == PageMetaSidebar.Small) { Html.RenderPartial("_SmallSidebar"); }
..
..
..

有人可以告訴我是否存在性能開銷。 我知道Razor視圖已編譯完成。 是否會出現頁面顯示時,會讀取另一個磁盤來獲取我使用的每個部分文件的數據。 如果是這種情況,那么我的布局頁面上的5個RenderPartials可以帶來多少額外開銷。

這里根本沒有顯着的性能影響,因為在將結果HTML流回瀏覽器之前,只需將部分內容放入asp.net Web服務器。 這不是一個昂貴的磁盤讀取,並不會出現比單個cshtml更慢。 如果在許多視圖中重用相同的局部視圖,顯然應該使用partials。 如果僅在單個視圖中使用,則只需將其分成單獨的部分以將模型的各個部分分成不同的視圖即可。

注意你也可以使用:

@Html.Partial("YourPartial")

而不是使用RenderPartial 這將查看本地視圖文件夾,然后在共享中找不到。

我認為使用RenderPartial約5次不會對設計頁面產生很大的影響。 如果將邏輯拉出(使頁面更清晰,由多個視圖使用等)是有意義的,那么就這樣做。 如果您發現性能問題很重要,那么您應該在那時查看它們,但不要過早地優化並創建一個糟糕的設計,因為您認為它可能會減慢速度。

如果你想更好地了解潛在的性能命中,你可能想要使用mvc-mini-profiler

請注意,雖然我不提倡預先成熟的優化。 但是,使用分析工具可以讓您更好地了解潛在的瓶頸,從而幫助您將來避免它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM