不同形式的预编译会影响性能吗?

Posted

技术标签:

【中文标题】不同形式的预编译会影响性能吗?【英文标题】:Do the different forms of precompilation impact performance? 【发布时间】:2014-09-08 03:35:04 【问题描述】:

我正在使用 MVC3、ASP.NET4.5 和 C#

预编译 Web 应用程序时有多种选择:

    不要合并。 不要合并,为每个页面和控件创建一个单独的程序集。 将所有输出合并到一个程序集中。 将每个单独的文件夹输出合并到自己的程序集中。 将所有页面和控制输出合并到一个程序集中。

我正在部署到 Azure 网站。

我目前选择了 3,它创建了一个 2.5MB 的程序集。

我意识到此时生成的 PCCode 已准备好让 Jitter 在运行时创建 Native 代码,因此性能应该是相同的。但是我想知道这些选项之间是否仍然存在性能差异。我目前选择了选项 3,因为它看起来更整洁。

谢谢。

【问题讨论】:

唯一确定的方法是分析和基准测试。你的结果说明了什么? 【参考方案1】:

应该会根据您选择的合并选项对性能产生影响。多大?未经测试不确定,但直观地说,如果有更多程序集和文件供您的应用程序访问,则应该比访问单个程序集花费更长的时间。我的猜测是差异很小。程序集本身不会对性能产生影响,但在未合并的情况下您的性能会受到轻微影响,因为在运行时需要处理更多文件。

可能有帮助的其他资源:

Additional Precompile Settings Dialog Box

ASP.NET Merge Tool, Compilation and Merge Scenarios

【讨论】:

以上是关于不同形式的预编译会影响性能吗?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript的预编译过程

JavaScript的预编译过程

强制包含可以与 Visual C++ 中的预编译头一起使用吗?

PHP-Mysqli扩展库的预编译

JS中的预编译(词法分析)阶段和执行阶段

iOS中的预编译指令