64位系统上运行32位程序能否申请到8G内存?

申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来讲,申请8G的存储空间没有任何意义,因为32位的程序最大寻址空间只有4G,32位程序在编译之后的机器代码也只有32位的寻址数(指针占4个字节),因此申请8G的空间是没啥意义的,而且一般系统都会为每个进程设置一些资源限制,对于32位程序其能申请的内存量也远远小于4G可以看一下下面这个表操作系统内部数据结构限制对比 IT168评测中心 分组  限制 64位Windows限制 类别 单个进程虚拟空间  4GB 16TB 用户模式虚拟内存(32位应用程序,32位Windows)2GB 3GB(使用4GT技术,同时应用程序需要使用IMAGE_FILE_LARGE_ADDRESS_AWARE参数编译)用户模式虚拟内存(32位应用程序,64位Windows)   2GB /*这个j就是是32位程序运行在64位系统下的可用于malloc的最大虚拟内存*/ 4GB(应用程序使用IMAGE_FILE_LARGE_ADDRESS_AWARE参数编译)  用户模式虚拟内存(64位应用程序,32位Windows)32位Windows不支持64位应用程序   用户模式虚拟内存(64位应用程序,64位Windows)x64 : 8TB(应用程序使用IMAGE_FILE_LARGE_ADDRESS_AWARE) 2GB(应用程序不使用IMAGE_FILE_LARGE_ADDRESS_AWARE)IA64 : 7TB(应用程序使用IMAGE_FILE_LARGE_ADDRESS_AWARE)内核模式虚拟内存 (32位Windows)   2GB 1GB(使用4GT技术)内核模式虚拟内存 (64位Windows)  8TB 
时间: 2024-10-10 01:14:09

64位系统上运行32位程序能否申请到8G内存?的相关文章

如何在ubuntu 64 11.04 上运行32位程序

在网上查了很多资料,发现在在ubuntu 64 11.04 上运行32位程序要装一个ia32-libs的包,可执行如下命令,却提示无法安装 apt-get install ia32-libs 难道11.04的安装源给整坏了!!! 经过查了很多很多的外国网站,找到很多方法,都无效! 最后找到一种,将就可以用 apt-get install libstdc++6 apt-get install lib32stdc++6 apt-get install lib32z1 在这里深深的鄙视百度,你搜索出来

win764位系统上让32位程序能申请到4GB内存方法

win764位系统上让32位程序能申请到4GB内存方法. 2016年09月18日 18:36:26 阅读数:1550 最近测试一个32位程序总是在1.2G左右内存时崩溃,怀疑是内存申请失败,本身32位程序只能申请到2GB内存,经过在网上找的各种方法和测试,如下方法可行,能申请到4GB内存. 1.管理员模式下运行CMD,输入:BCDEdit /set PAE forceenable Windows 这里的BCDEdit是关于命令行的启动配置编辑器.使用上面的命令,你能启用物理地址扩展(PAE),让

在64位linux上编译32位程序

ld指令有一个选项:--oformat output_format,用于指定输出文件的格式.输入文件./kernel/kernel.o等是elf32格式,当前系统是64位,而ld默认生成的文件格式是elf64-x86-64:因此会出现"ld: warning: i386 architecture of input file `./kernel/kernel.o' is incompatible with i386:x86-64 output"这样的提示.之前,将系统从三墩转移到我自己的

64位系统里注册32位软件

1.在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统. 故可以把这些32的dll.ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可. 如:regsvr32 C:\Windows\sysWOW64\netconn.dll 2.对于UAC.低权限用户应使用管理员帐户. 3.有时候注册

64位系统下注册32位dll文件

64位系统下注册32位dll文件 在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统. 故可以把这些32的dll.ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可. 如:regsvr32 C:\Windows\sysWOW64\MakerCom.dll 原文地址:https://w

64位win2003 IIS6运行32位的.NET程序

做web服务迁移,从32位win2003迁移到64位win2003,数据库是32位Oracle在另外一台服务器上. 迁移之后数据库各种连不上,oracle的客户端32位的装完装64位的,odp.net也是各种装,已过一段实验数据库连接工具终于连接上数据库 了,可是64位的iis还是连接不了数据库.一会儿32位一会儿64位,本来oracle就不熟客户端还特别的大,没有闲功夫研究它了.让我们用一个最简 单最不负责任的办法解决它吧,哼哼. 让64位系统下的iis 改成32位运行. IIS7 很简单,在

在64位linux上编译32位程序 for i386 intel

编辑中 # ld -V GNU ld version 2.15.92.0.2 20040927 Supported emulations: elf_x86_64 elf_i386 i386linux #ld -m elf_i386 Along with the -m32 flag in gcc, you may need to include the -melf_i386 flag for ld to properly link the 32bit object files to the 32b

在64位Linux上安装32位gmp大数库

前期准备: 如果没有安装32位gcc和g++环境的话,可能会导致安装失败,此时请参考上一篇博文 http://www.cnblogs.com/weir007/p/5977759.html,根据系统版本配置编译环境. 下载gmp源码(如gmp-6.1.0.tar.bz2),解压,cd进入gmp解压后文件夹: 依次运行指令: ABI=32 CFLAGS=-m32 ./configure make check 2>&1 | tee gmp-check-log (由于平台问题,需要仔细检测,确保所有

Windows 7/8 64位系统 不能注册32位dll 文件的解决方案

这几天碰到一个问题,运行一个易语言开发的软件出现以下错误.我的系统是 Windows7 64 位 专业版.在系统盘 windows/system32  下查找 dm.dll.但是没有这个文件.于是我到百度去查找相关答案,问的人有很多,答案却是相同的,我断定这些都是复制来粘贴去的,都没有一个好的答案,有些更是离谱的发疯了.到百度知道提问,也是复制粘贴到,牛头不对马嘴. 错误信息:不能载入OCX组件 "Dm1.0版1.0版",其组件或类型库文件名为"dm.dll",数字