在MsBuild中启用/禁用序列化程序集的生成

时间:2014-01-17 08:50:59

标签: performance visual-studio serialization

在我的应用程序运行时,它如何影响Visual Studio的构建属性中启用/禁用序列化程序集生成?

1 个答案:

答案 0 :(得分:3)

当您强制生成序列化程序集时,MSBuild将运行SGen任务。这需要多长时间完全取决于您的机器的功能和生成的组件的大小。第二个是非常粗略的猜测。

但不要猜测,让MSBuild 告诉你需要花多长时间才能知道实数而不是猜测。工具+选项,项目和解决方案,构建和运行。将MSBuild构建输出详细程度设置更改为“详细”。 MSBuild现在显示它执行的每个任务的细分以及花费的时间:

1>Task Performance Summary:
1>        0 ms  GetReferenceAssemblyPaths                  1 calls
1>        0 ms  GenerateBindingRedirects                   1 calls
1>        0 ms  GetFrameworkPath                           1 calls
1>        0 ms  ReadLinesFromFile                          1 calls
1>        0 ms  AssignProjectConfiguration                 1 calls
1>        0 ms  FindAppConfigFile                          1 calls
1>        0 ms  MakeDir                                    1 calls
1>        0 ms  AssignCulture                              1 calls
1>        1 ms  RemoveDuplicates                           2 calls
1>        1 ms  FindUnderPath                              5 calls
1>        1 ms  ConvertToAbsolutePath                      1 calls
1>        1 ms  CallTarget                                 1 calls
1>        1 ms  Delete                                     2 calls
1>        1 ms  AssignTargetPath                           6 calls
1>        2 ms  Copy                                       2 calls
1>        2 ms  Message                                    3 calls
1>       10 ms  ResolveAssemblyReference                   1 calls
1>       83 ms  Csc                                        1 calls
1>      541 ms  SGen                                       1 calls // <=== here!

不要假设我粘贴在这里的数字,请务必在自己的机器上尝试。


尝试编辑后,确定。第一个访问您网站的访问者不会将他的页面加载延迟到那一秒。这取决于您回收网站的频率,但运行sgen主要用于交互式桌面应用程序,对于预计会运行很长时间的服务器而言并不多。