POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 17015|回复: 76
打印 上一主题 下一主题

内存虚拟硬盘根本就是谎话!

[复制链接]
跳转到指定楼层
1#
发表于 2007-11-19 01:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是2G内存,用RamDisk虚拟出个1.2G的硬盘。然后把虚拟内存放置在虚拟硬盘上,设置为768,1150。结果在任务管理器看时,都是2.7G的内存限制(显然是2G+768M虚拟内存),说明RamDisk根本不能完全欺骗系统。在打《英雄连》时,内存占用达到2.2G左右,说明系统还是在调用硬盘,简直郁闷了。我也没什么要求,只要物理内存用完即可。现在这点要求恐怕是达不到,这些该死的程序一定要用硬盘──难道《英雄连》真的可以占据近2G内存么(启动后,系统大概是占用300M左右),我就不相信,惟一的解释就是虚拟硬盘根本就是无法欺骗系统,这些该死的程序一定要用硬盘,真是无语了……
2#
发表于 2007-11-19 01:40 | 只看该作者
不要动不动就先发怨气,是你自己没用着好方法或找的软件对不上!

可以在注册表上, 直接关掉硬盘上的内存页, 让系统直接把东西直接写到内存上.

用RAMDISK的话, 就找"RamDisk.Plus.v8.0.4.0", 早期的版本不行.  但在创建虚似硬盘时,也要注意设置的项目,例如"重起加载","指定创建的虚似硬盘影像存放位置",那些地方一定要设置好才有作用的.  这个软件能在硬盘页面文件之前被执行, 早前的 "RAMDISK", 我试过,就不行的.

RAMDISK PLUS V8.0 做的虚似盘,还用来做存放网页临时文件的地方好, 那样开过的网页,基本闪一下就开了,当然,也要在注册表设置好才行.   另外, 用它看 AVI...RMVB....等等电影也很不多,那样就不用老读硬盘了.
回复 支持 反对

使用道具 举报

s7777 该用户已被删除
3#
发表于 2007-11-19 10:11 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

4#
发表于 2007-11-19 10:43 | 只看该作者
:lol:没文化真可怕,虚拟成硬盘,系统就不当它是内存了?

RAMDISK占用的物理内存是强制占用,是WINDOWS系统分给它用的,为什么就该不能识别呢?
然后RAMDISK再靠虚拟出来的硬件设备识别成硬盘分区。
LZ最好先看看设备管理器里多了点什么再来发言。

如果想让系统识别不出虚拟部分的占用,只有软件方式抢在WINDOWS系统进入以前接管内存管理。
问题是两套内存管理同时作用你觉得可靠吗?这还没提对大内存识别呢,似乎和WINDOWS抢内存管理的软件只有虚拟软驱的。

SUPER RANDISK确实有个问题,隔次开机有时候会无法载入虚拟内存,PAGEFILE.SYS自动在C盘重建了,目前还没法解决,除非换虚拟软件。就是这个原因我现在不用SUPER RANDISK放虚拟内存了。

[ 本帖最后由 jakenchao 于 2007-11-19 10:56 编辑 ]
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2007-11-19 14:31 | 只看该作者
我用的是8.0啊,问题是把虚拟内存放在虚拟硬盘后,内存的限制是“虚拟内存+整个内存”。
你们也可以试一下啊,2G内存,虚拟1G,然后设置800M于虚拟硬盘上,你们到设备管理器中看,内存限制(就是最大内存容量)是不是2.8G了。而实际上,如果一切正常的话,应该是1.8G,是不是这样?
回复 支持 反对

使用道具 举报

1201 该用户已被删除
6#
发表于 2007-11-19 14:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

7#
发表于 2007-11-19 14:44 | 只看该作者
原帖由 wl00560 于 2007-11-19 14:31 发表
我用的是8.0啊,问题是把虚拟内存放在虚拟硬盘后,内存的限制是“虚拟内存+整个内存”。
你们也可以试一下啊,2G内存,虚拟1G,然后设置800M于虚拟硬盘上,你们到设备管理器中看,内存限制(就是最大内存容量)是不 ...


你认为1.8G是错误的,按你设计的结果,WINDOWS应该识别是2.0G,虚拟1G用掉800M,剩下那200M是被RAMDISK空占用。
前边已经回答你一部分了,现在告诉你解决:
在虚拟内存设置那里重新设置一下,会要求重启。重启以后就正常了,但是下次再开机又不对了。所以现在已经不用RAMDISK加载虚拟内存了。
如果是我说的这种情况,你应该能在C盘找到隐藏文件pagefile.sys,这是WINDOWS在虚拟盘加载虚拟内存失败以后自动建立的。

说到底还是super RAMDISK启动时候没有提前插入系统内存管理造成的。不过RAMDISK也不是为了加载虚拟内存才设计的,这么做属于歪门邪道,实在不行也不能强求,除非你自己有实力改软件。

[ 本帖最后由 jakenchao 于 2007-11-19 14:51 编辑 ]
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2007-11-19 14:55 | 只看该作者
我这儿能正常加载虚拟内存,但问题是虚拟硬盘加载后,内存限制(任务管理器中)变成了“虚拟内存+整个内存“,如果虚拟内存是700M,就是2.7G,如虚拟内存是800M,就是2.8G(内存以2G计算)。
好像是Windows根本就不承认虚拟硬盘,所以才出现”整个内存+内存上虚拟内存“的情况……
另外,如果虚拟失败,内存限制会成为4G,即C盘上有个2G的pagefile.sys文件……
回复 支持 反对

使用道具 举报

9#
发表于 2007-11-19 15:00 | 只看该作者
原帖由 wl00560 于 2007-11-19 14:55 发表
我这儿能正常加载虚拟内存,但问题是虚拟硬盘加载后,内存限制(任务管理器中)变成了“虚拟内存+整个内存“,如果虚拟内存是700M,就是2.7G,如虚拟内存是800M,就是2.8G(内存以2G计算)。
好像是Windows根本就不 ...


这种加载失败以后系统自动建立的页面文件就是按你设置的大小建立,只不过因为RAMDISK虚拟的分区没生效,不能载入所以放到C盘了。
而这是你能用的内存就是物理1G和虚拟的800M,那1G是划给RAMDISK的空占用。

[ 本帖最后由 jakenchao 于 2007-11-19 15:02 编辑 ]
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2007-11-19 15:00 | 只看该作者
按照最理想的情况是,虚拟硬盘用去1G,那么物理内存就应该只有1G,然后再加上虚拟硬盘上的800M,就是1.8G,我是这样理解的。
但现在即使虚拟了1G内存,Windows仍然认为物理内存有2G,再加上虚拟硬盘上的800M,从而才出现2.8G的情况……

[ 本帖最后由 wl00560 于 2007-11-19 15:02 编辑 ]
回复 支持 反对

使用道具 举报

11#
发表于 2007-11-19 15:05 | 只看该作者
原帖由 wl00560 于 2007-11-19 15:00 发表
按照最理想的情况是,虚拟硬盘用去1G,那么物理内存就应该只有1G,然后再加上虚拟硬盘上的800M,就是1.8G,我是这样理解的。
但现在即使虚拟了1G内存,Windows仍然认为物理内存有2G,再加上虚拟硬盘上的800M,从而才 ...


最后纠正你一次理解错误,RAMDISK是WINDOWS内存管理划分出1G给RAMDISK,其他软件都不会占用这1G,至于RAMDISK管理的时候里边是满还是空,WINDOWS系统是不管的,对它来说,这1G就是完全占用了。
当你使用2G系统,虚拟内存设定800M以后,不管RAMDISK设定了多少,对于WINDOWS再加载虚拟内存失败而将页面放置到C盘这种情况,只有一种内存占用方式,那就是2G物理内存800M虚拟内存。
换句话说RAMDISK使用多大的物理内存,WINDOWS系统是知道的,只不过不知道里边是不是放了东西。不要以为虚拟成硬盘就和WINDOWS系统的内存管理划清界限了。

[ 本帖最后由 jakenchao 于 2007-11-19 15:13 编辑 ]
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2007-11-19 15:23 | 只看该作者
好像我还没有说明白我的意思,我再试着说一下:
我的虚拟内存放在虚拟硬盘中,其余地方没有虚拟内存,所以“物理内存+虚拟内存”不应该大于2G(因为都在内存中,我的内存只有2G),但现在Windows却认为我的整个内存超过2G,达到了2.8G,这是不可能的,但这偏偏就是现实。
实际上,这个数字甚至可以达到近4G,即把2G内存完全虚拟成硬盘,然后把虚拟内存放在上面,这时候,Windows就会认为2g物理内存+2G虚拟内存,即4G。而实际上,我所有的内存(包括虚拟内存)都在2G物理内存中,2G≠4G,这明显就出现了大错误。
不知我这次表述的清楚否?

如图,现在我的700M左右的虚拟内存在虚拟硬盘上,Windows就显示出2.7G来,这难道不是一种错误?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

13#
发表于 2007-11-19 15:23 | 只看该作者
不要再钻牛角尖了, 最直接的方法就是改注册表, 让系统直接把东西写到内存上, 那就能满足你的要求了.




  修改注册表发挥大内存优势

  现在请打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\MomoryManagement],在右侧窗格修改一下键值(要注意的是,做一下设置的前提是内存最好超过512MB,并仅限于Windows 2000/XP)。

  (1)"LargeSystemCache"(启动大的系统缓存):在内存中开辟一块大的内存空间用于磁盘文件系统的预读取操作。当程序连续请求的数据增加时,Windows通过系统缓存自动预读,使程序能以最快速度获取所需数据。由于启用这个系统缓冲会占用较多的物理内存,使得能被程序利用的可用物理内存减少。将其值设为1。这样,系统缓存从4MB增加到8MB。

  (2)"SecondLevelDataCache"(提高cpu性能):CPU的处理速度要远远大于内存的存取速度,而内存又要比硬盘快得多。这样CPU与内存之间,内存与磁盘之间就形成了影响性能的瓶颈效应,前面的"LargeSystemCache"是为了缓解内存与磁盘瓶颈而设计的,而CPU为了能够迅速从内存获取处理数据也设置了一种缓冲机制L2 Cache(二级缓存)。调整这个键值能够使Windows更好地配合CPU利用该缓存机制获得更高的数据预读取命中率。建议将其设置为512。

  (3)DisablePagingExecutive(禁用页面文件):将其值改为1(十六进制),这样将使所有程序和数据强制性限定在物理内存中运行,而不是使用虚拟内存。很明显,当有足够多的物理内存来完成所需任务时,这样做必使系统性能得到巨大的提升。对于内存仅有64MB的用户而言启用它或许就是灾难——系统频繁出错,直至崩溃。

  (4)"IOPageLockLimit"(定制输入/输出缓冲尺寸):输入输出系统是设备和微处理器之间传输数据的通道,当扩大其缓冲尺寸时数据传递将更为流畅。同理,具体设置多大的尺寸要视物理内存的大小和运行任务多少来决定,一般来说,如果内存有64MB就可将该双字节键的16进制值设置为400(1MB)、800(2MB)或1000(4MB)128MB内存可设为1000(4MB)、2000(8MB)或4000(16MB);256MB内存4000(16MB)或8000(32MB)。当然如果有更多内存,完全可以将其设为10000(64MB)甚至更多。当设为0时,Windows将自动配置。

  设置这些之后,重启系统即可。其实修改这些的效果并不是很明显,不过心理上总有个安慰吧,下面的才是让你感到质的飞跃的地方。

  这里要向大家介绍一个软件,RAMDisk Plus,这个软件就是把内存的一部分划分出来作为一个磁盘分区用的,你可以把一些临时文件夹转移到这个分区上,比如IE的临时文件夹,这样会大大提升你浏览网页的速度。内存的传输速度和硬盘的传输速度的差距我想大家都清楚吧,用内存的一部分作硬盘相当于添加了一个几十万转的硬盘,速度的提升可想而知。这个是我的亲身体会,我把我的内存中的100M划出来作为一个分区,然後把IE的临时文件夹挪到上面,重启之后,打开网页就是一瞬间,以前即便是在网速很好的半夜,也没有这么快的,看来很多时候网速不是瓶颈,机器才是瓶颈啊,尤其是那些图片较多,需要缓存的网页,大家可以试试。划出这100M内存之后,我现在的正常可用内存还保持在500M以上,还有好多空间啊,好在RAMDISK plus可以添加多个分区,我可以再划出来几个分区,然后把一些常用程序放进去,这样运行起来肯定也快多了。

  不过记住,内存掉电后里面东西就都没了,但是还好,Ramdisk plus提供了关机自动保存的选项,也就是关机的时候可以把虚拟硬盘分区中的东西保存到实际硬盘分区中你指定的地方,然后开机的时候再load回来,跟休眠的道理差不多啦,只是这样就会导致关机时间和开机时间变得很长,所以我建议只在虚拟硬盘分区上放临时文件,反正临时文件迟早是要被清空的,放到ramdisk上还省去了手动清空的麻烦。


上面的要主意第一个, 开启后, 我跑 03 测试显卡时, 测试声音的地方会有错。
回复 支持 反对

使用道具 举报

14#
发表于 2007-11-19 15:28 | 只看该作者
(3)DisablePagingExecutive(禁用页面文件):将其值改为1(十六进制),这样将使所有程序和数据强制性限定在物理内存中运行,而不是使用虚拟内存。很明显,当有足够多的物理内存来完成所需任务时,这样做必使系统性能得到巨大的提升。对于内存仅有64MB的用户而言启用它或许就是灾难——系统频繁出错,直至崩溃。


搞了那个后, 你可以把硬盘上的内存页文件空间关掉了, 可以释放出硬盘空间了。

[ 本帖最后由 zyc3288 于 2007-11-19 15:29 编辑 ]
回复 支持 反对

使用道具 举报

15#
 楼主| 发表于 2007-11-19 15:33 | 只看该作者
谢谢你,如果能禁用虚拟内存也可以啊。但那个该死的《英雄连》一定要用768M虚拟内存才能运行,我也是没办法啊……
现在的问题是,无论把768M虚拟内存放在硬盘上,放在虚拟硬盘上,Windows都认为是2.7G,从而在运行《英雄连》时,最高内存达到2.2G──换言之,反正要用硬盘,简直是可恶的事……
回复 支持 反对

使用道具 举报

16#
发表于 2007-11-19 15:33 | 只看该作者
原帖由 wl00560 于 2007-11-19 15:23 发表
好像我还没有说明白我的意思,我再试着说一下:
我的虚拟内存放在虚拟硬盘中,其余地方没有虚拟内存,所以“物理内存+虚拟内存”不应该大于2G(因为都在内存中,我的内存只有2G),但现在Windows却认为我的整个内存 ...


是你还不理解而已
看来只能用教小朋友的方法给你打比方了。
2G内存是一个2000ml容量的桶,800M内存是800ml附属设备容量。计量器会显示一共2800ml的总容量。
你现在用RAMDISK划分出1G,相当于在水桶底部加了一个1000ml容积的容器(不考虑容器本身体积),但是里边是空的,这个容器是刚性的,就是完全占用了1000ml水的空间,所以其实只有1000ml水和附属容器的800ml,计量器还是只显示2800ml总容量。
当你把800ml附属设备容容量放到这个1000ml容器里的时候,其实一共只有18000ml的水,但是计量器还是显示2800ml。
如果再看不懂我也没辙了,自己拿水桶自己试验去吧……:sweatingbullets:
回复 支持 反对

使用道具 举报

17#
发表于 2007-11-19 15:36 | 只看该作者
原帖由 wl00560 于 2007-11-19 15:33 发表
谢谢你,如果能禁用虚拟内存也可以啊。但那个该死的《英雄连》一定要用768M虚拟内存才能运行,我也是没办法啊……
现在的问题是,无论把768M虚拟内存放在硬盘上,放在虚拟硬盘上,Windows都认为是2.7G,从而在运行《 ...


我早说过不能完全禁用虚拟内存,不相信的人多了。
回复 支持 反对

使用道具 举报

18#
发表于 2007-11-19 15:38 | 只看该作者
毫无意义的软件.......
回复 支持 反对

使用道具 举报

19#
发表于 2007-11-19 15:39 | 只看该作者
:funk: 多简单的问题啊!

2g内存分出1g作虚拟硬盘。系统内存总数不变,原因如4楼。只不过1g永远是被占用的。在1g上划出800m作虚拟内存。和你在硬盘上划800m是一样的。因为1g内存被系统识为硬盘了。所以总内存数是2.8g.这1g内存并不会因为作为硬盘而让windows识别不到。但你系统可用内存数实际上只有1g+800m
回复 支持 反对

使用道具 举报

20#
发表于 2007-11-19 15:41 | 只看该作者
原帖由 garou 于 2007-11-19 15:38 发表
毫无意义的软件.......


只不过你没找到它在哪里有意义罢了,不过用它虚拟硬盘放虚拟内存纯属歪门邪道,能用也好,不能用就算
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-12 08:42

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表