gpt4 book ai didi

.NET Framework - 每个应用程序的开销

转载 作者:行者123 更新时间:2023-12-02 02:34:31 25 4
gpt4 key购买 nike

是否有人知道有关使用 .NET Framework 2.0/3.0/3.5 的开销的任何具体信息?

我最感兴趣的是每个实例的开销以及是否存在“固定成本”而不考虑实例的数量,例如在运行 300 个 .NET Framework 应用程序实例的终端服务环境中是否只有 1 个即时编译器实例?

如果我得到一个近似算法,那就太好了,例如每个实例 10mb + JIT 50mb

最佳答案

它的工作方式与非托管代码完全相同。 CLR、JIT 编译器和 .NET 框架程序集是 DLL,由运行托管代码的任何进程共享。他们的代码只有一个副本被加载到 RAM 中,所有进程都将他们的虚拟内存页面映射到那个副本。

托管代码往往比非托管代码拥有更多的私有(private)字节,这是一种无法共享的代码。这首先要归功于 JIT 编译器,它会在一个进程与另一个进程不同的地址上即时生成机器代码。装载程序和垃圾收集堆往往有点强大。

您可以使用 Ngen.exe 消除 JIT 编译器开销。这就是共享 .NET 框架程序集的原因,当您在机器上安装框架时,它们是 Ngen-ed 的。您不能对堆做任何事情,但这在非托管代码中并没有什么不同。

关于.NET Framework - 每个应用程序的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2383752/

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