32位系统下,只能管理2G以下的内存吗?如果这样,在32位平台下,4G内存根本发挥不了作用呀?是这样吗?

tdcq123 2008-10-15 08:29:54
32位系统下,只能管理2G以下的内存吗?如果这样,在32位平台下,4G内存根本发挥不了作用呀?是这样吗?
据说在32下,只能管理2G以下的内存,是不是意味着,我在32位下运行某一软件,对这个软件而言,超过2G的内存,它是利用不起来的,无法提高性能,是这样吗?
...全文
381 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joephia 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 tdcq123 的帖子:]
32位系统下,只能管理2G以下的内存吗?如果这样,在32位平台下,4G内存根本发挥不了作用呀?是这样吗?
据说在32下,只能管理2G以下的内存,是不是意味着,我在32位下运行某一软件,对这个软件而言,超过2G的内存,它是利用不起来的,无法提高性能,是这样吗?
[/Quote]

32位系统 则表示一个进程能够最大拥有 4G 内存,

在windows里 高位 的2G 内存被系统模块,调用DLL,共享资源等所占用,

所以实际上真正拥有的只有2G,但这2G 内存不是一次分配的,

而是按照需要,通过添加内存页面(64K)的方式逐渐增减的.

WINDOWS 采用虚拟内存映射技术,扩展了 物理内存,把部分内存页面放在了磁盘上,

所以即使你的物理内存只有 1G,实际可访问的却超过1G

按照这个说法是不是意味着内存大没什么用呢? NO!NO!NO!

4G 只表示一个进程的内存范围,实际上WINDOWS会同时运行多个进程,

所以内存大就意味着可以把更多的内存页面放在物理内存上,而物理内存的访问速度绝对远远超过磁盘等读写

所以速度肯定能升级

当然如果你的程序 需要 超过 4G 的内存,如果没有程序设计思路的错误,那么应该考虑使用 64位系统或更高
dch4890164 2008-10-15
  • 打赏
  • 举报
回复
那是虚拟内存 实际上虚拟内存到物理内存之间还有一层映射
楼上对于多进程的情况已经分析了,我补充一下
单进程虽然最多只能访问2G,但是由于要做内存映射,你的内存如果是256M有可能有一部分虚拟内存就要映射到硬盘上
相反内存越大映射到内存的可能性越大,你程序的速度也可能越快
另外一个原因你的内存越大,系统寻找内存可映射区域(内存的大小等因素决定是否可以映射)的时间越短
===============================================
以上纯粹是个人的理解没有查过具体的资料
Red_angelX 2008-10-15
  • 打赏
  • 举报
回复
32位的总线 对应4G物理地址!
xiaoQ008 2008-10-15
  • 打赏
  • 举报
回复
用到虚拟内存吧
yinzhaohui 2008-10-15
  • 打赏
  • 举报
回复
单进程2G,如果是多个时程当前可以使用大于2G的内存,
如果非要在单进程中使用超过2G的内存,要求使用MS的相关API
zhoujianhei 2008-10-15
  • 打赏
  • 举报
回复
对于一个进程而言它的地址空间就是2GB,大了也访问不到。经过配置Windows系统可以最大访问3GB地址空间。

用户 昵称 2008-10-15
  • 打赏
  • 举报
回复
看操作系统怎么给你开放的。
DarknessTM 2008-10-15
  • 打赏
  • 举报
回复
物理扩展地址

再说了,难道就你一个进程用内存啊,系统这么多进程

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧