【问题标题】:Does MVC T4 affect an ASP.NET MVC Application performance?MVC T4 会影响 ASP.NET MVC 应用程序的性能吗?
【发布时间】:2011-06-27 06:32:20
【问题描述】:

我今天刚开始使用 MVC T4,我真的很想继续使用,但是有些事情让我很烦。 我的应用程序很大,所以我想知道 MVC T4 是否会损害我的 ASP.NET MVC 应用程序的性能。 我可以依赖 MVC T4 吗?

提前致谢。

【问题讨论】:

    标签: asp.net-mvc code-generation t4


    【解决方案1】:

    T4 模板(通常)在编译时运行。因此,您的应用程序不会产生运行时成本。

    【讨论】:

    • ok,但是生成的代码量很大,没关系?
    • 我认为生成的代码可能效率非常低 - 在这种情况下它可能会损害性能,但这与 T4 本身无关。但仅仅存在大量代码这一事实不会成为性能问题。
    【解决方案2】:

    您不必担心生成的代码量。 .NET 运行时旨在高效处理比 T4MVC 生成的更多内容。

    相反,您应该只担心生成的句法“糖”对 MVC 应用程序的运行时行为的影响。具体来说,我说的是使用 t4mvc 模式可能会迫使 MVC 使用效率较低的方式来实现某些功能的情况。 (一个假设的例子是return View(Views.InvalidOwner); 的效率低于return View("InvalidOwner");

    浏览samples 页面后,我看不到任何会突出风险的东西。但是,如果您担心,您当然应该衡量您的应用程序的性能。看看这个video,因为它提供了一些关于如何(甚至是否)对 MVC 应用程序进行性能优化的重要信息。

    【讨论】:

    • 哦,是的,这就是我想要的。谢谢
    • 我不得不对此投反对票。您警告某人,当 Gabe 在下面非常准确地回答这个问题时,可能会出现问题。 T4 在由静态属性持有的类中创建只读字段。 T4 的创建考虑了性能,生成的代码比字符串文字慢几纳秒。不希望任何其他阅读此问题的读者认为 T4 生成的代码可能是性能问题。
    • 当然,我回答了 OP 问题的另一个方面。根本问题是应用程序的性能。他们提出的危险信号是生成的代码量是否会产生影响。简短的回答是否定的(第一段)。长的答案是性能不是一个简单的主题。 T4MVC 在现有 MVC API 之上引入了另一层抽象,因此存在风险(第 2 段)。幸运的是,它没有做任何危险的事情(第 3 段)。相反,OP 应该专注于应用程序性能调整的其他方面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多