【发布时间】:2011-04-26 01:42:18
【问题描述】:
我喜欢在我的 Razor 视图中使用局部视图。它使代码干净整洁。但是使用 partials 是否有任何显着的性能成本?我创建了一个简单的测试。它表明使用分部要慢得多。
test.cshtml:
@{
var stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
for(var i=0; i<1000; i++) {
var str = "my string #" + i;
@Html.Partial("_MyPartial",str) // replace with @str on second test
<br />
}
stopwatch.Stop();
<br />
@: Time elapsed (ms): @(stopwatch.ElapsedMilliseconds)
}
_MyPartial.cshtml:
@Model
部分代码在 340 毫秒内执行,而内联 @str 代码显示为 0 或 1 毫秒。这对我来说真的很令人震惊,因为这意味着我应该摆脱所有可爱的部分,至少是那些在循环中的部分。
如果有人想确认或批评我的实验,非常欢迎。
【问题讨论】:
-
您为什么担心?你没有达到你的性能要求吗?或者这纯粹是过期?如果是这种情况,是的,使用局部变量会降低性能。
-
我有一个包含客户表格的页面,我使用部分表格为每个客户显示一些时髦的 html。我需要尽快成为输出——这就是我决定进行测试的原因。此外,替换 Html.ActionLink 有助于大大提高渲染速度。经过所有优化 - 这个特定页面的速度提高了大约 10 倍。
标签: c# asp.net-mvc-3 razor