gpt4 book ai didi

与 32 位相比,ASP.NET 4.0 工作进程在 64 位中消耗的内存多 5 倍

转载 作者:行者123 更新时间:2023-12-05 01:30:05 33 4
gpt4 key购买 nike

我已将一个 ASP.NET v4.0 应用程序迁移到在 Win2008 Server x64 操作系统下运行的新服务器。由于当应用程序池设置为“启用 32 位应用程序”= False(在 x64 IIS 上应该是默认值)时,迁移的 asp.net 应用程序似乎没有问题,因此我让它在 64 位模式下运行。

事实证明,用户 session 经常被中断,因为工作进程很快就超过了其虚拟内存限制。出于这个原因,我只用一个修改过的设置测试了相同的应用程序和相同的应用程序池 - 我将“启用 32 位应用程序”切换为 True 以使其在“WOW64”模式下运行;其他一切都保持原样。我使用完全相同的用户工作场景比较了两种模式下工作进程消耗的内存量,结果让我有点震惊:

  • 工作量消耗约。在 WOW64 32 位模式下运行时为 150MB
  • 在“默认”64 位工作进程模式下,相同的工作负载消耗大约 800MB。

  • 我曾预料到在 64 位模式下工作进程可能会消耗更多的内存,但是这种差异太大了。

    如此巨大的内存影响被认为是正常的吗?是否有可能以某种方式减少/修复它?

    最佳答案

    经过更多调查,似乎没有内存问题.. 新服务器只是有更多内存,而在 64 位操作系统应用程序池上运行时,只允许分配更大的内存资源。它看起来像是内存泄漏,但由于从一定数量的已分配 RAM 中,该进程停止消耗额外的内存,因此它似乎根本不是内存问题。感谢所有回答者..

    关于与 32 位相比,ASP.NET 4.0 工作进程在 64 位中消耗的内存多 5 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993477/

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