一个做了10年VC++开发的软件工程师认为在32位机器上可以动态申请4G内存
一个做了10年VC++开发的程序员认为在32位机器上可以动态申请4G内存
晚上在公司食堂吃饭,大家谈话逐渐谈到C++的内存分配问题。其中一个做windows开发的同事的观点让我愕然。
据说这位同事在windows上用VC++进行开发已经有十年有余。他声称,在32bit的windows上,一个进程可以一次new出来一个3G或者4G的内存,我差点就当场笑喷了。
他的理由是由于虚拟内存的缘故,只要虚拟内存允许,一次就可以申请4G的内存空间。此人又扯到物理内存分段、物理地址不连续云云。
我的直觉是此人没把物理内存地址、线性内存地址和逻辑内存地址搞明白。
我虽然是走linux后端开发,但也不至于混蛋到他那种程度。32bit上的os的进程的逻辑地址空间上限是4G,linux内核占去2G(windows上是1G),还有代码段(.txt)、静态和全局数据段(bss和data)段,这些都要占去一部分内存,更别说给函数栈也得分配点,焉能申请4G的内存空间?让鬼给他变戏法变出4G的内存?
至于扯到分段和虚拟地址,那是物理地址的事,跟一个进程的逻辑地址空间大小又有什么关系?
------解决方案--------------------
好吧 那我一次装4G数据去 压死他
------解决方案--------------------
支持楼主,说明10年都是在混,直接用下面这个压死他:
http://msdn.microsoft.com/zh-cn/library/ms189334.aspx
------解决方案--------------------

我表示 据说这位同事在windows上用VC++进行开发已经有十年有余
估计都是简单的基本的界面操作,复制别人代码完成工作而已!
没有自己真正的弄清楚原因,不懂内存管理!
楼主 ,笑笑就好!笑笑就好!
晚上在公司食堂吃饭,大家谈话逐渐谈到C++的内存分配问题。其中一个做windows开发的同事的观点让我愕然。
据说这位同事在windows上用VC++进行开发已经有十年有余。他声称,在32bit的windows上,一个进程可以一次new出来一个3G或者4G的内存,我差点就当场笑喷了。
他的理由是由于虚拟内存的缘故,只要虚拟内存允许,一次就可以申请4G的内存空间。此人又扯到物理内存分段、物理地址不连续云云。
我的直觉是此人没把物理内存地址、线性内存地址和逻辑内存地址搞明白。
我虽然是走linux后端开发,但也不至于混蛋到他那种程度。32bit上的os的进程的逻辑地址空间上限是4G,linux内核占去2G(windows上是1G),还有代码段(.txt)、静态和全局数据段(bss和data)段,这些都要占去一部分内存,更别说给函数栈也得分配点,焉能申请4G的内存空间?让鬼给他变戏法变出4G的内存?
至于扯到分段和虚拟地址,那是物理地址的事,跟一个进程的逻辑地址空间大小又有什么关系?
32位
c++
内存分配
------解决方案--------------------
好吧 那我一次装4G数据去 压死他
------解决方案--------------------
支持楼主,说明10年都是在混,直接用下面这个压死他:
http://msdn.microsoft.com/zh-cn/library/ms189334.aspx
------解决方案--------------------
我表示 据说这位同事在windows上用VC++进行开发已经有十年有余
估计都是简单的基本的界面操作,复制别人代码完成工作而已!
没有自己真正的弄清楚原因,不懂内存管理!
楼主 ,笑笑就好!笑笑就好!