在ASP.NET MVC中为视图初始化模型的不同方法

时间:2009-08-31 13:06:47

标签: c# asp.net-mvc performance memory

使用这两种不同的方式为视图声明模型时,ASP.NET MVC控制器的实际内存/性能增益是多少?

User user = userService.GetByID(id);
return View(user);

return View(userService.GetById(id));

我假设最后一个更高效,因为我们没有初始化一个对象,但是第一个更具可读性。这对于拥有数千名访客的网络服务器来说是否重要?

2 个答案:

答案 0 :(得分:4)

对于分配的内存和垃圾收集器的行为,两个语句之间没有区别。使用您喜欢阅读的那个: - )

答案 1 :(得分:4)

实际上,在两种情况下都会初始化一个对象;第一个做的是第二个不是:1)为变量保留一些空间(不涉及性能,而是空间); 2)添加对象的引用(即,增加该对象的引用数),然后删除该行之后的引用(减少引用数)。

我几乎不相信两者之间可以观察到性能差异。

那就是说,我更喜欢第二个,因为那里不需要user变量;无论如何,这只是一个品味的问题,可能有造型的理由,喜欢第一个和其他人喜欢第二个。