gpt4 book ai didi

.net - 如何减少网络上运行的 .Net dll 数量

转载 作者:行者123 更新时间:2023-12-02 14:05:15 28 4
gpt4 key购买 nike

我们有一个包含大量 .dll 文件的 .Net Framework 4 软件解决方案。

这些文件托管在网络服务器上,并从公共(public)远程文件夹上的客户端运行。

我们希望减少此服务器文件夹中 .dll 文件的数量。

确实出现了一些问题:

  • 较大的合并 .dll 的启动/或执行速度会比众多较小的 .dll 慢/快吗?
  • 通过网络库文件使用 NGen 是否有好处,以便针对每个客户端进行优化?

大多数 .dll 实际上是通过 COM 可见接口(interface)从 32 位非托管代码调用的。

最佳答案

单个较大的 DLL 的启动或执行速度不应比多个较小的 DLL 慢。由于操作系统不需要做那么多的初始化工作,因此启动速度可能会更快。然而,我怀疑您是否会注意到其中的差异。拥有更少的 DLL 会稍微减少程序的内存占用。再说一次,不是很多。

我不建议在通过网络提供服务的 DLL 上运行 NGen。 NGen 旨在针对其运行的处理器进行编译和优化。如果您的客户端计算机具有不同的架构,NGen 镜像可能不是最佳的,或者可能无法工作。

评论后补充:

参见Improving Application Startup Time有关改善启动时间的更多信息。另外Writing High-Performance Managed Applications : A Primer .

另请注意,加载程序不会 JIT 整个程序集。它根据需要进行 JIT。如果您的程序不使用程序集中的类,则该类的代码将永远不会被 JITted。此外,方法在第一次使用之前不会进行 JIT 处理。因此,如果您从不调用方法 Foo.Bar(),那么它永远不会被 JITted。

关于.net - 如何减少网络上运行的 .Net dll 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244588/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com