gpt4 book ai didi

c++ - 32 位 Windows 上 C++ 应用程序可用的最大内存是多少?

转载 作者:IT老高 更新时间:2023-10-28 23:12:03 24 4
gpt4 key购买 nike

只是想知道 C++ 应用程序使用的最大内存是否有限制

我知道这是 2GB - 对吗?

如果 C++ 应用程序尝试请求超过 2GB 的内存,这会导致内存崩溃吗?

最后一个问题 - 如果运行 C++ 应用程序的机器内存已经不足,而 C++ 应用程序要求 100MB 的数组(即连续内存),操作系统是否会通过使用虚拟内存来解决这个问题?

最佳答案

它会导致动态内存分配失败,这通常会导致应用程序崩溃,但从技术上讲,可以编写应用程序来承受此事件。 2GB 确实是单个进程的用户地址空间大小——一个应用程序可以使用多个进程(最简单的例子:Chrome)。如果应用程序请求 100MB 的连续内存,则该内存必须实际上是连续的,即使在物理上不连续,如果没有足够的连续页面可用,则分配失败。

总是使用虚拟内存——所有内存都是虚拟的。

2GB 是大多数情况下的限制。通常情况下,2GB 用于用户,2GB 用于内核,但您可以要求 Windows 将 3GB 用于用户,1GB 用于内核(有一定风险),并且是 64 位,整个 4GB 的 32 位地址空间可供用户使用。仅当您将应用程序编译为 /LARGEADDRESSAWARE 时,增加的地址空间才可用。

关于c++ - 32 位 Windows 上 C++ 应用程序可用的最大内存是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5686459/

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