gpt4 book ai didi

performance - Asp.net Mvc 2 DisplayFor 性能问题?

转载 作者:行者123 更新时间:2023-12-04 17:05:39 26 4
gpt4 key购买 nike

在我最近使用 Asp.net Mvc 2 的项目中,我们发现 DisplayFor 存在性能问题。我不太确定它是否是 真实问题还是我错过了什么?

我希望一些 Asp.net Mvc Guru 可以向我解释。 :)

模型。

public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string EmailAddress { get; set; }

public static IEnumerable<Customer> GetCustomers()
{
for (int i = 0; i < 1000; i++)
{
var cust = new Customer()
{
CustomerId = i + 1,
Name = "Name - " + (i + 1),
Address = "Somewhere in the Earth...",
EmailAddress = "customerABC"
};

yield return cust;
}
}
}

Controller
public ActionResult V1()
{
return View(Customer.GetCustomers());
}

public ActionResult V2()
{
return View(Customer.GetCustomers());
}

V1(有性能问题)
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Customer>>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
V1
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>V1</h2>
<table>
<%foreach (var cust in this.Model)
{%>
<%= Html.DisplayFor(m => cust) %>
<%} %>
</table>
</asp:Content>

模板是
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Customer>" %>
<tr>
<td><%= this.Model.CustomerId %></td>
<td><%= this.Model.Name %></td>
<td><%= this.Model.Address %></td>
<td><%= this.Model.EmailAddress %></td>
</tr>

V2(无性能问题)
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Customer>>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
V2
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>V2</h2>
<table>
<%foreach (var cust in this.Model)
{%>
<tr>
<td><%= cust.CustomerId%></td>
<td><%= cust.Name%></td>
<td><%= cust.Address%></td>
<td><%= cust.EmailAddress%></td>
</tr>
<%} %>
</table>
</asp:Content>

我可以很容易地看到 V1 和 V2 之间的性能差异。

编辑 :当我部署到本地 IIS 7(带有 Release 版本)时,它 (V1) 变得非常快。问题解决了,但我还是想知道原因。 :)

谢谢,
苏萌

最佳答案

缓存仅在 Release模式下启用。如果您在 Debug模式下运行应用程序,您可能会看到由于磁盘访问而导致的性能下降。

也可以看看:
http://codeclimber.net.nz/archive/2009/04/22/how-to-improve-htmlhelper.renderpartial-performances-donrsquot-run-in-debug-mode.aspx

关于performance - Asp.net Mvc 2 DisplayFor 性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com