gpt4 book ai didi

windows - 如何检查一个进程中可以使用的地址空间的最大内存量

转载 作者:可可西里 更新时间:2023-11-01 09:25:56 25 4
gpt4 key购买 nike

如果在 32 位可执行文件中未指定 LARGEADDRESSAWARE 开关,则 2GB 内存(提供或占用)可供进程使用。当开关 LARGEADDRESSAWARE 出现在可执行文件的 PE 标志中时,此限制可以是(如果我错了请纠正我):

  • 如果 32 位 Windows 不是使用/3GB 开关启动的,则为 2GB
  • 3GB(如果 32 位 Windows 是使用/3GB 开关启动的)
  • 如果该进程作为 32 位进程在 Windows 64 位操作系统下运行,则几乎高达 4GB。

我的问题是:如何确定此内存限制(有和/或没有 LARGEADDRESSAWARE 标志)?作为旁注:上面列举的可能性是否正确?

注意:我对进程使用的内存量不感兴趣,也不是由于外部影响造成的限制,我只是在理想情况下可以分配的最大内存量。

最佳答案

我认为最好的方法是调用 GetSystemInfo并从 lpMinimumApplicationAddress 中找出你需要的东西和 lpMaximumApplicationAddress .您可以简单地从后者中减去前者以获得总的可用寻址内存空间。

您关于各种可能性的三个要点是正确的。

关于windows - 如何检查一个进程中可以使用的地址空间的最大内存量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8555076/

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