C# 当您将空模型传递给视图时,MVC页面加载是否更快?

C# 当您将空模型传递给视图时,MVC页面加载是否更快?,c#,asp.net-mvc,C#,Asp.net Mvc,我注意到,当您将模型传递到页面时,加载速度要快于只返回(强类型)视图时的加载速度。另外,当您在lambda表达式中直接引用模型时,速度更快 案例1 public ActionResult Create() { return View(); } 在视图中 @Html.EditorFor(m => m.field)<br /> @Html.ValidationMessageFor(m => m.field) @Html.EditorFor(m=>m.field)

我注意到,当您将模型传递到页面时,加载速度要快于只返回(强类型)视图时的加载速度。另外,当您在lambda表达式中直接引用模型时,速度更快

案例1

public ActionResult Create()
{
    return View();
}
在视图中

@Html.EditorFor(m => m.field)<br />
@Html.ValidationMessageFor(m => m.field)
@Html.EditorFor(m=>m.field)
@Html.ValidationMessageFor(m=>m.field)
案例2

private model1 = new model();
public ActionResult Create()
{
    return View(model1);
}

@Html.EditorFor(m => Model.field)<br />
@Html.ValidationMessageFor(m => Model.field)
private model1=新模型();
公共操作结果创建()
{
返回视图(模型1);
}
@Html.EditorFor(m=>Model.field)
@Html.ValidationMessageFor(m=>Model.field)

也许这只是我电脑上的一个特例,但如果不是,有人能解释一下这两种不同的工作方式吗?此外,如果这是一个好的练习还是不好的练习?

您需要评测您的应用程序,或者至少使用秒表测量性能。对一个用户来说是正确的,对其他用户来说可能不是正确的


您需要在相同的条件下(理想的生产条件下)通过多次迭代来测试这两种方法,以了解是否存在显著差异

当您传递一个空模型时,mvc页面的加载速度会更快。以下是示例结果。测试设置为VS 2012快速版

@{ var c = DateTime.Now; System.Diagnostics.Debug.WriteLine(c); }// page start code
@{ var d = DateTime.Now; System.Diagnostics.Debug.WriteLine(d); System.Diagnostics.Debug.WriteLine(d - c); }// page end code

15/07/2013 11:31:06 ----- With empty model page start
15/07/2013 11:31:07 ----- With empty model page load completed
00:00:00.2680153    ----- With empty model total load time
-----------------------------------------------------------------------
15/07/2013 11:31:52 ----- Without empty model page start
15/07/2013 11:31:54 ----- With empty model page load completed
00:00:02.0501173    ----- With empty model total load time
-----------------------------------------------------------------------
15/07/2013 11:32:03 ----- Without empty model page start
15/07/2013 11:32:05 ----- With empty model page load completed
00:00:01.9641124    ----- With empty model total load time
-----------------------------------------------------------------------

您是在附加调试器时测试这个,还是在使用release编译时不使用调试器?你测试过这一次吗?你测量过几百次电话吗?你是怎么测量的?使用
DateTime
减法或使用
Stopwatch
类?我目前正在尝试彻底测试这一点。我有一个巨大的模型,我会发布结果。调试器已附加。我已使用秒表进行了测试,事实上,至少在我的计算机上是这样。我没有一个托管计划,所以无法检查网络:扫描你在服务器上测试这个,如果你有一个plz。