在Windows操作系统上, 一般32位进程, 虚拟地址空间为4 GB, 而其中默认有2 GB属于kernel mode, 2 GB属于user mode. 而我们能用的, 其实就是user mode这2 GB.
对于一些需要使用2 GB或者高于2 GB(但不会超过4 GB)的程序来说, 有两种方法:
- 修改操作系统user mode的虚拟地址空间大小, 一般可以选取范围为2 GB ~ 3 GB, 但这个似乎是32位操作系统上的概念, 不知道64位上有没有.
- 微软的vc链接器, 有链接选项
/LARGEADDRESSAWARE
, 从而当这个32位进程, 运行在64位Windows操作系统上时, 能够使用高达4 GB的user mode虚拟地址空间. 这个对内存使用比较多的32位进程来说, 相当友好.
现在操作系统一般也是64位的了, 所以第2中方法可能更加好一点