【问题标题】:who's faster mvc2's Templated Helpers or mvccontrib's Input Builders谁更快 mvc2 的 Templated Helpers 或 mvccontrib 的 Input Builders
【发布时间】:2010-04-26 14:22:23
【问题描述】:

有人知道哪个更快吗?

【问题讨论】:

    标签: asp.net-mvc mvccontrib


    【解决方案1】:

    输入构建器的嵌入式资源通过 WebFormView 引擎提供服务。当您的应用程序在 webconfig 中设置为 debug=false 时,视图引擎会缓存视图,因此它只会从程序集中加载一次。输入构建器会慢一点的真正原因是它们使用母版页来减少您维护的 HTML。例如,编辑器模板将产生一个输入。等效的输入构建器将生成标签、输入和围绕两者的 html“chrome”,以便您可以指定一次并将其应用于使用输入构建器的每个表单。输入构建器实际上是用于应用约定您的表单标记是如何构建的,并且它以一种让您控制但也让您的 html 片段“干燥”的方式进行构建(不要重复自己)。

    就像所有事情一样,都有权衡。对于输入构建器,您需要牺牲一些运行时性能来换取开发人员的生产力。归根结底,如果您需要在公共网站上拥有超高性能的表单,最好的选择是提供一个静态 html 文件,该文件发布到 MVC Action。

    【讨论】:

    • 如果您也将 Field.Master 用于 TemplatedHelpers(就像这里 bradwilson.typepad.com/blog/2009/10/…),那么您在速度上没有任何差异?
    • 如果您要在该场景中使用主模板,那么我认为您所说的等效功能是非常相似的实现,因为 InputBuilders 使用内置的 WebFormsViewEngine。我会说,当推到紧要关头时,内置帮助应该更快,因为它们在性能上投入了更多时间。这需要权衡,因为输入构建器提供了一个干净的约定 API 来丰富您的模型,例如下拉菜单。你用一些性能换取更清晰的可扩展性。
    【解决方案2】:

    您的答案取决于您从哪里加载视图页面。

    模板化助手有一点优势,因为没有任何视图覆盖,它们在幕后操纵字符串以产生 html 输出。

    输入构建器通过嵌入式资源或传统文件系统加载视图,这总是比硬编码字符串操作稍慢。

    两者的代码是相似的,并且基本上执行相同数量的反射和元数据处理。在没有任何文件或资源加载复杂性的情况下,它们都以

    【讨论】:

    • 我假设大多数视图引擎都会缓存视图。我知道 spark 在内存中缓存编译版本。我使用 FubuMVC 输入约定 (geekswithblogs.net/ryanohs/archive/2010/02/24/…),它还内置了缓存,所以我没有遇到任何性能问题,但我也从未做过性能比较。
    猜你喜欢
    • 2018-06-01
    • 1970-01-01
    • 2012-03-10
    • 2011-05-25
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多