- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如果 Windows 应用程序在图像头中设置了 IMAGE_FILE_LARGE_ADDRESS_AWARE
(通过/LARGEADDRESSAWARE 编译器标志),这通常允许 32 位应用程序使用超过 2GB 的内存(仅限如果 32 位操作系统在 boot.ini 中设置了 3GB 开关,则有意义)。见 MSDN article /3GB了解更多信息。
我的问题是,如果您在没有设置 3GB 开关的系统上运行此应用程序会发生什么。它只是被忽略了吗?还是应用程序会尝试使用 3GB 堆并出现内存不足错误,因为用户空间只有 2GB 可用?
我一直听说 LARGEADDRESSAWARE 开关对于 2GB 用户空间系统被忽略,但找不到任何有关此的官方 Microsoft 文档。
提前致谢。
最佳答案
基本上 IMAGE_FILE_LARGE_ADDRESS_AWARE
告诉系统,“我知道设置高位的地址不是负数,并且可以处理它们”。如果系统准备提供 2GB 以上的用户模式地址,那么它会提供。如果系统不准备提供这些地址(即,没有/3GB 设置的 32 位 Windows 操作系统),则该进程无论如何都无法获取这些地址 - 但不会造成任何伤害。
还请注意,如果图像设置了 IMAGE_FILE_LARGE_ADDRESS_AWARE
位,它将在不支持(或不需要)/3GB 开关的 Win64 系统上访问超过 2GB 的地址空间。 32 位应用程序将获得接近 4GB 的地址空间,而 64 位应用程序将获得巨大的地址空间 - 7TB 到 8TB,具体取决于平台(64 位版本默认设置该位)。
http://msdn.microsoft.com/en-us/library/aa366778.aspx#memory_limits
关于winapi - IMAGE_FILE_LARGE_ADDRESS_AWARE 和 3GB 操作系统切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586826/
我从这里的其他帖子了解到“IMAGE_FILE_LARGE_ADDRESS_AWARE”可能会有效地扩展内存可用性,例如德尔福 2007。 我无法在 Delphi6 中使用它,是否确实如此,或者它应该
我希望我的应用程序能够使用超过 2GB 的内存,我搜索了一下,发现 IMAGE_FILE_LARGE_ADDRESS_AWARE 命令可以让我做到这一点。 所以我加了 {$SetPEFlags IMA
在我的程序中使用 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志(使用超过 2GB 的 RAM)有什么副作用? 我正在使用 Delphi 7 和 FastMM4。 最佳答案 您需要
如果 Windows 应用程序在图像头中设置了 IMAGE_FILE_LARGE_ADDRESS_AWARE(通过/LARGEADDRESSAWARE 编译器标志),这通常允许 32 位应用程序使用超
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE} 对 64 位 Delphi 应用程序有任何影响吗? 最佳答案 完全没有效果。所有 64 位进程都会自动判定为大
我昨天了解到在 DelphiXE 中使用编译器指令: {$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE} 即使 DelphiXE 编译器生成 32 位代码,您也可
我是一名优秀的程序员,十分优秀!