代码之家  ›  专栏  ›  技术社区  ›  Robban

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

  •  3
  • Robban  · 技术社区  · 15 年前

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

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

    return View(userService.GetById(id));
    

    我假设最后一个更具性能,因为我们不初始化对象,但是第一个更具可读性。在一个拥有数千名访问者的Web服务器上,这还会有什么影响吗?

    2 回复  |  直到 15 年前
        1
  •  5
  •   giorgian    15 年前

    实际上,在这两种情况下都要初始化一个对象;第一种方法所做的而第二种方法所不做的是:1)为变量保留一些空间(这与性能无关,但与空间有关);2) 向该对象添加引用(即,增加该对象的引用数),然后删除该行后面的引用(减少引用数)。

    我几乎不相信这两者之间存在明显的性能差异。

    也就是说,我更喜欢第二种,因为不需要第二种 user

        2
  •  4
  •   Joel Martinez    15 年前

    就分配的内存和垃圾收集器的行为而言,这两个语句之间没有任何差异。使用您喜欢阅读的内容:-)