32位Windows7上8G内存使用感受+xp 32位下使用8G内存 (转)

32位Windows7上8G内存使用感受+xp 32位下使用8G内存

博客分类:

XPWindowsIE企业应用软件测试

我推荐做开发的朋友:赶快加入8G的行列吧....呵呵..超爽...速度超快...基本没有等待的概念...深有体会...

为什么要使用8G内存?在国内外各大论坛上,这都是一个有争议的问题。问题的反方论据非常充分:

  • 除了少数专业领域,大多数应用程序不会需要超过1G的内存。
  • 游戏使用的内存最多也是2G而已。
  • 8G内存不便宜,不如花在显卡上。
  • 升级到8G后没有什么明显变化。
  • 8G内存要用64位操作系统,兼容性不佳。

平心而论,这些都是合理的理由。从我自身的角度,一个程序员,最多的应用就是IDE,Visual Studio和Eclipse都是内存大户。但从实际测试情况看,Visual Studio即使开5、6个,4G内存也还是够用的。

我使用8G内存,是因为其他的想法。

我还想再提高系统性能。众所周知,现在的硬件中,硬盘是最后的瓶颈。温彻斯特硬盘除了提高磁密度,已经没有明显提高性能的途径了。而SSD性能确实 不错,但价格太高、寿命太短的问题短期内无法解决。混合硬盘应该是未来一段时期的亮点,这个还要靠软硬件厂商的积极推动。我想,要提高硬盘性能,还有一条 切实可行的路:使用内存做硬盘缓存。内存的价格一直持续下降,可以预见大内存的应用不会太难。磁盘缓存是成熟的技术,操作系统支持得很好。顺便提一句,我 一直认为Win7的磁盘缓存算法比WinXP改进了很多,但没找到明文证据,希望有人指导一下。

既然有了想法,我就实践一次。

首先,32位系统上,通过ReadyFor4G破解,可以使用超过4G的内存。这点很重要,现阶段我还不能牺牲系统兼容性。这里要纠正一个常识错 误:32位系统不能使用大于4G的内存。早在16位系统上,系统可使用的内存就远远大于64K了,这是因为采用了内存分段和20位地址线。那么在32位系 统上,使用36位地址线也就是顺理成章的事情。所以在当前x86架构中,32位系统最多可以使用128G的内存。Windows系统因为MS的人为限制, 不允许用于使用大于4G的内存。Windows Server 2003 32bit DataCenter版官方声明就可以使用32G内存,而Linux系统就直接支持4G以上的内存。ReadyFor4G通过直接修改Windows内 核,去除这个限制。不过,这个方法也有限制,一些不规范的驱动程序不能支持大于4G的内存,会导致系统崩溃。在我的ThinkPad T410s上,如果打开显卡切换功能,相应的驱动程序就会导致系统启动时蓝屏。为了使用更多内存,我只好关闭了集成显卡,仅使用NVS 3100M独立显卡。而其他驱动程序都没有问题。在我的ATI显卡台式机上,也顺利破解。说明对于较新的硬件和驱动程序,兼容性可以保证。其实就算只有 4G内存,ReadFor4G也能额外使用500-1000M的内存,提升明显,不再赘述。

其次,现在4G x 2的价格还可以接受,淘宝上包邮¥780搞定。开始我还担心内存兼容性,查阅资料发现,现在的内存已经很少出现兼容性问题,甚至不同品牌的混用也经常成功。

安装完毕后,打开任务管理器,可以看到8G物理内存:

8G内存使用后,是否如之前所料,磁盘缓存起到了应有的作用呢?先来看看内存资源使用情况:

此时我开启了2个IDE,1个浏览器,2个通讯软件,Windows Live Writer,还有若干小应用程序。已经使用的内存4012M,看来4G内存确实是不够用的。为什么以前不觉得4G不够呢?因为以前开启了这么多程序,页 面文件的使用会明显增加,而现在页面文件的使用量查得为147M:

所以物理内存占用更多了。这样带来的直接好处就是程序响应更快。以前在开启较多程序后,硬盘读写次数明显增加,程序的反应速度下降。而现在即使开启 了多个程序,其使用依然流程,跟仅开启一个程序时没有什么区别。现在使用多个IDE,瞬间切换,立即使用,不会有任何延迟,如臂使指的感觉非常舒服。

让我们再回到内存资源分配图,其中Standby的内存为3869M。Standby的内存其实就是磁盘缓存数据。接近4G的磁盘缓存,保证了我常 用的磁盘文件能以最快的速度读写。这个感受最直观的应该是在游戏中,切换场景的速度明显加快,磁盘读取明显减少,不用喝茶等待了。

根据我平时的使用习惯,一般不会关闭机器,而是使用睡眠或休眠的方式。这样的好处是可以保持内存中的缓存数据,下次开机不用重新加载,操作快速如旧。

所以,能够保证持续流畅的使用体验,是大内存的优势。4G内存对于运行程序和游戏,确实是足够的。但更多的内存 能够提供更流畅的用户体验,让PC更像家电,速度体验始终如一。我认为8G内存只是起步,毕竟只够提供4G缓存,16G或更多内存也会有明显效果。配合写 缓存和休眠模式,PC的性能可以不再受限于硬盘。未来也可能会出现带锂电池的专用缓存,在提高性能的同时保证数据的安全性。

http://www.cnblogs.com/tinyfish/archive/2010/12/06/1897583.html

WindowsXP-x86下8G内存的用法

2010-04-22 19:30

经不起白菜价内存的 诱惑,入了4条G.Skill芝奇DDR2-1000-2G的内存条,开机认到8G,进入XP后系统认到3.25G。现在的主机的主要配置 是:E8400(小超至440*9=3.96G)、GA-P45-DS4、4×G.Skill-DDR2-1000-2G。这套主机准备用到i7和 DDR3到了白菜价后再退役了。

目前扣除软件资源匮乏的Win64位系统和我个人还不太顺手的Liunx外,想要让8G内存尽量发挥作用,主流方面大概就两种选择:(1).用
Windwos Server 2003 企业版;(2).用 Windows XP/x86 系统,外加 RamDisk
工具来让系统认不到的内存部分发挥作用。

试过 Windwos Server 2003 企业版,但最终放弃了,毕竟是面向企业的系统,和XP还是有写客观区别的,另外就是我的天敏电视卡在 Windwos Server 2003 企业版下不能用(系统会宕机,晕)。

最终还是回归到主流的 Windows XP/x86 系统下。网上搜索到都是说用 RamDisk
工具来让系统认不到的内存部分发挥作用。以前没有用过这类工具,以为就一种软件,结果走了一些弯路,后来才知道 RamDisk
工具有好几家,出的工具名字也都差不多。最后有比较长时间用过的是 SuperSpeed RamDisk Plus 9.0.3.0 版和
Gavotte RamDisk 1.0.4096.5
版。前者是收费软件,功能貌似强大(GUI界面、设置相对复杂),后者是免费软件、绿色软件,使用极为简单!因为前者在我单位的DELL电脑上无法管理超
过3.25G的内存(直接宕机),所以我最后使用的是后者,就是 Gavotte RamDisk 1.0.4096.5 版。

Gavotte RamDisk 在我的机器上到如ram4g.reg(开启PAE内存管理)后,能自动分别一个4.74G的内存盘(我使用默认的R:盘),我做了下面的工作来尽量发挥这些内存的作用:
     (1).把系统临时目录转移到该内存盘R:\TEMP目录;
     (2).把IE浏览器的临时目录转移到该内存盘R:\TEMP目录;
     (3).把系统虚拟内存设置为2096G放到该内存盘R:盘上;
     (4).把迅雷的Cache盘修改到该内存盘R:盘上。

应该说很多认都知道 RamDisk 工具了,我也是很早就听说,但真正用的时候走了一些弯路(RamDisk 工具有很多种),希望本文对需要的人有帮助。另外,4G内存的朋友也同样可以。

在boot.ini里加入PAE,32位机最大支持16G内存,但是每个进程依然是最大4G

近日在网上研究让xp支持4g内存,总结他人经验,反复尝试,终于成功,方法如下:
1,首先检查主板是否支持,下载
everest检测软件,在主板-内存一项中,Physical Address
Extension(PAE)查看“操作系统支持”“处理器支持”是否为“是”,如果是“否”的话代表主板不支持,不要玩了,如果是“是”的话,“活动”
一项是“否”也有可以修改的可能,那么接下来----

2,我的电脑-属性-高级-启动和故障恢复-设置-编辑,这里编辑操作的是c盘根目录下隐藏的boot.ini文件,各位也可以通过在c盘显示隐藏文件的方法找到它,我的boot.ini里的内容如下:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect


么接下来在“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP
Professional" /noexecute=optin /fastdetect”的表明操作系统的“Microsoft Windows XP
Professional ”加上“/PAE”

即“multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /PAE /noexecute=optin /fastdetect”

这样保存关闭,系统就打开了PAE

我的是xp sp2系统,其他系统没有测试,大家不要乱来

这样,重新启动后,电脑属性的下方多了“物理地址扩展”几个字,虽然显示的还是3.25g内存,但实际上4g内存已经完全启用了,但怎么证明这一点呢?就用ramdisk虚拟硬盘软件来测试

ramdisk
是一款将内存转换为虚拟硬盘的小软件,内存的速度是硬盘的几十倍,所以在我处理ps等需要大量暂存盘的软件时,通常都会用它来充当软件的暂存盘,这样软件
的速度会倍增,在系统没有开启PAE只能识别3.25g内存的情况下,使用ramdisk会直接占用这3.25g的内存,而开启PAE后,用
ramdisk设置768mb的内存作为虚拟硬盘,再调出任务管理器,会发现内存使用丝毫没有减少,也就是说,ramdisk调用的768mb内存是系统
没有显示出来的768mb,还而言之,系统已经找到了4g内存啦。

新增ramdisk下载:
ramdisk软件点击下载

很多朋友都装了4G内存甚至8G内存,可惜32位系统中除了2003server支持显示4G内存以外,其它都最大利用到3.25G左右,余下0.75G都浪费了,这主要是32位操作系统内存地址映射限制的问题造成的,如何解决呢?电脑属性里显示3.25G的问题是无法真正解决的,即使32位vista旗舰版可以显示4G内存,但无法真正全部利用这4G内存,这就需要一个重要软件的登场了,RAMDISK,可能很多朋友听说过,此软件支持把内存硬盘分区来用,也就是说通过RAMDisk可以把无法利用的那部分内存硬盘分区,除了可以把IE的临时文件缓冲区放到这个分区以提高访问网络的速度外(具体设置很简单这里就不多说了),还可以通过设置windows xp等32位的虚拟内存来把这部分内存真正利用起来,具体设置如下,以8G系统物理内存为例,系统显示3.25G,余下4.75无法利用,这时用RAMDISK把4.75G内存全部设置为硬盘分区,把IE缓冲设置100兆并放到此分区内,此时还余下4.65G,在“我的电脑”-“属性”里把虚拟内存设置为4.65G,然后将虚拟内存页面文件指向这个新设立的分区,保存重启后,你的新分区就会多了一个4.65G的Pagefile.sys的隐藏文件,这时你要把C盘(系统盘)下的Pagefile.sys文件删除(WINDOWS 不会自动删除这个文件),这样你可以利用7.9G的内存了(有100M是你的IE缓冲),4.65G的虚拟内存因为也是映射到真正的内存上来用,所以不会影响速度(速度是原硬盘虚拟内存的十几到几十倍,因物理内存速度而异),但此分区内不能存储重要文件,因为每次关机或重启都会清空此分区,因为此分区不是harddisk而是ram,每次启动系统都会自动生成Pagefile.sys和IE缓冲的目录,我已验证,对系统使用没有任何副作用,至今没有跳出过任何出错的信息。虽然我的电脑属性里依旧是3.25G,但用热键调出的“任务管理器”下的“性能”页面里内存显示的可是7.9G,是真正可以被利用的。

不知道你是否为大内存在32位系统下无法利用而苦恼,为64位系统的兼容性差而苦恼,希望我写的这篇文章会对你有用!

另外,此技巧系我自己摸索出来的,请大家转发时注明是泡泡网首发,文章系转载,谢谢。

最后欢迎专业人士进来拍砖,哪里有问题尽管批评,大家可以研究讨论,把大内存真正利用好。

注:因我在单位,无法上图,等回家后给各位看管补上。

找一个VISTA的安装版,先用2G内存装好系统,装好后再插上其它内存就可以啦,我是电脑城做的,上个月装了10几台8G内存的机都可以全认到

http://hi.baidu.com/yanghuaishuai/blog/item/767991fcf89ab2f1fc037fa8.html

参考:http://wmcuit.com/index.php/2011052311/readfor4g-for-32bit-win7-test-by-v460

由于自己习惯于使用内存释放....却无意发现了内存释放砖家的问题....

http://macleo.iteye.com/upload/picture/pic/92050/7750e5ed-4c15-3fe3-ae5b-0788800ebced.jpg

时间: 2024-10-27 19:25:13

32位Windows7上8G内存使用感受+xp 32位下使用8G内存 (转)的相关文章

windows内存详解(一) 全面介绍Windows内存管理机制及C++内存分配实例

十分感谢MS社区的帖子,讲得很好~ http://social.technet.microsoft.com/Forums/zh-CN/2219/thread/afc1269f-fe08-4dc7-bb94-c395d607e536 (一):进程空间 在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用:根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制. 本文目的: 对Windows内存管理机制了解清楚,有效的利用C+

linux 下查看系统内存使用情况的方法

在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux 下查看内存使用情况的free命令: [[email protected] tmp]# free total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/+ buffers/cache: 471116 2795064 Swap: 2048276

深入浅出处理器(下)_内存管理(映射)

专题1-深入浅出处理器 处理器(下)_内存管理(映射) 1.内存管理单元(MMU) 内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查.MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏.操作系统系统内存管理单元实现虚拟内存和内存保护.重点就在于地址映射:页表的结构与建立.映射的过程. 2.问题:下面程序输出结果是否完全相同? int g_v = 1; int main(void) { printf(

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

申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来讲,申请8G的存储空间没有任何意义,因为32位的程序最大寻址空间只有4G,32位程序在编译之后的机器代码也只有32位的寻址数(指针占4个字节),因此申请8G的空间是没啥意义的,而且一般系统都会为每个进程设置一些资源限制,对于32位程序其能申请的内存量也远远小于4G可以看一下下面这个表操作系统内部数据结构限制对比 IT168评测中心 分组 限制 64位Windows限制 类别 单个进程虚拟空间 4GB 16TB 用

sql2005性能优化(在32位系统上突破2G内存使用量的方法) .

转载自http://blog.csdn.net/soldierluo/article/details/6589743 服务器磁盘为(SAS)IBM组成RAID0+1,SQL2K5只识别4G内存,实际只占用2G内存.而使用 AWE的话,应用程序可以直接将操作系统允许的最大物理内存量保留为未分页的内存.使用 AWE 使 SQL Server 可以缓存详细信息,而不用从磁盘上的系统页面文件中读取详细信息.通过更快的数据访问提高了性能并减少了访问磁盘的频率.故决定打开SQL2K5的AWE参数,将6G的内

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),让

32位程序在64位系统上获取系统安装时间(要使用KEY_WOW64_64KEY标记)

众所周知,取系统的安装时间可取注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的子项InstallDate,此值是个DWORD类型的UnixStamp.  但是在64位系统上有所不同(仅测试了win7.win8),默认情况下32程序在64位机器上访问的是下面这个地址HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion

在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"这样的提示.之前,将系统从三墩转移到我自己的

华为机试—32位处理器上数值转换

在 32 位处理器上,将任一整数转换为二进制形式. 要求实现函数: void DecToBin (unsigned int iDec, char pBin[32]) 输入:iDec 需要转换的十进制整数 输出:pBin 转换为二进制后的字符串,高位在左边,不足 32位补0 示例 输入:123 输出:{"00000000000000000000000001111011"} #include<stdio.h> void DecToBin (unsigned int iDec,