windows 2008 64位上ASP.NET应用程序的最大内存大小限制

windows 2008 64位上ASP.NET应用程序的最大内存大小限制,asp.net,iis,memory,windows-server-2008,Asp.net,Iis,Memory,Windows Server 2008,windows 2008 64位上ASP.NET应用程序的最大内存大小限制是多少 谢谢, Guy Bertental64位CLR将让您看到8 TB的地址空间 请记住,内存碎片可能意味着您可以分配的最大连续空间要少得多。这取决于许多因素 机器上的工作进程可以使用多少内存?(我认为目前32位和64位操作系统的容量都是2GB,尽管我可能不这么认为) 您的应用程序是否在自己的应用程序池上运行 您的应用程序池正在运行多少个工作进程?(即web应用程序园艺) 有两个限制 就其本身而言,您只能使用64位Win

windows 2008 64位上ASP.NET应用程序的最大内存大小限制是多少

谢谢,
Guy Bertental

64位CLR将让您看到8 TB的地址空间


请记住,内存碎片可能意味着您可以分配的最大连续空间要少得多。

这取决于许多因素

  • 机器上的工作进程可以使用多少内存?(我认为目前32位和64位操作系统的容量都是2GB,尽管我可能不这么认为)
  • 您的应用程序是否在自己的应用程序池上运行
  • 您的应用程序池正在运行多少个工作进程?(即web应用程序园艺)
  • 有两个限制

    就其本身而言,您只能使用64位Windows提供的可寻址空间,即8TB。当64位Windows的未来版本扩展该最大值时,您应该会看到在64位CLR上运行的.NET应用程序中立即反映了这一点-在64位地址空间中没有硬编码或.NET体系结构限制


    但是.NET对每个对象的硬编码限制为2GB。实现这一点的唯一现实方法是定义真正大的数组,例如
    newint[100000000]
    。这也是限制的主要原因(除了内存碎片的一些问题),因为.NET framework标准将数组索引定义为
    int

    1。我怎么检查?2.是的。只有1个,我没有设置网页gardening@Guy老实说,我找不到任何关于每个进程内存限制的权威文章。对于32位windows操作系统,很明显是2GB。然而,在64位世界中似乎有很多灰色地带。我会尝试搜索您的特定操作系统的每进程内存限制,因为它似乎是特定于操作系统的(即使在家族内部,也要确保包括您的服务器版本,即web、标准、小型企业等)。嗯,考虑到物理内存范围的虚拟化,您确定碎片化很重要吗?对,物理内存碎片并不重要,但是当许多小对象被分配到堆上时,或者如果一些对象最终进入大对象堆而没有被垃圾收集,虚拟地址空间也会被碎片化。CLR将在很大程度上解决这一问题,但仍有可能最终导致崩溃。