机4g内存分配自动分配缓存多少

用4g内存中认不出来的内存给硬盘作缓存加速,用什么软件好?
点击数:4694|回复数:15
系统是32位的,有775MB的不可用内存吧.
最好的软件是哪个?
width:100%">
我用的是fancycache,可以把不可用内存作为硬盘的读写缓存
width:100%">
最好的软件是WIN7 64位系统。
width:100%">
炸死企鹅 发表于
最好的软件是WIN7 64位系统。
怎么用的?
width:100%">
用FancyCache把多余内存当硬盘缓存的确有非常明显的速度提升。
我试了在8G内存中切出3G作为硬盘缓存,硬盘速度有很大提升。
width:100%">
WIN7 32位& &3.47G& &剩下的&&4.5G我全部做成虚拟盘了&&系统缓存&&网页缓存& &虚拟内存 都扔进去& &
非常快& &比神马的64位舒服多了& &64位 我用过一个月& &没有32位+虚拟盘这个方案舒服&&
width:100%">
bendian 发表于
WIN7 32位& &3.47G& &剩下的&&4.5G我全部做成虚拟盘了&&系统缓存&&网页缓存& &虚拟内存 都扔进去&&...
不推荐Ramdisk,要知道这些软件都是基于系统之上的。
width:100%">
P0wer 发表于
不推荐Ramdisk,要知道这些软件都是基于系统之上的。
不是系统的&&
我划出来的4.5G虚拟盘&&能是系统里的?
32位系统 一共才3.47G(我的主板)
我拿什么划4.5G?&&划完4.5G 我开机后的内存占用率是 30-40%& &如果要是系统里的&&可能?
width:100%">
bendian 发表于
不是系统的&&
我划出来的4.5G虚拟盘&&能是系统里的?
一下来自互联网转载:(真假与否本人不做判断)
我找到的是MS做kernel内存管理的developer,所以应该是最权威的了. 目前驱动程序唯一能达到访问4gb以上地址内存的方法是通过一个ddk api: MmMapIoSpace. 其实这个api本来是用来给设备驱动程序进行特殊的地址映射用的,并非用来管理内存.
简单地说, bios会把可用的内存映射到一个并不一定连续的物理地址空间中,比如0地址开始的一段空间需要留给bios自己所以无法映射内存, 3gb-4gb范围内的地址有可能留给各种pci设备,也不能用作内存,这也是为什么win7 32bit在4gb地址线下看不到全部4gb内存的原因.
当然如果bios支持memory remap,那么多余的内存会比map到4gb以上的地址空间,而由于目前win7 32bit强行忽略掉了这部分mapping,所以即使bios map了也不会被使用.
ramdisk 4g的原理就是使用MmMapIoSpace来强行读写4gb以上的地址空间,注意是跳过操作系统的强行读写,把这段地址当作是io设备来操作,而并不一定是内存.
这种做法,主要有两个问题:
第一: 作为驱动程序,你是无法确切地知道究竟哪段物理地址空间里面是映射的你的多余的内存,目前的bios架构中,只有通过中断int 25, function 0xE820才能获知, 而这个bios中断只能在实模式下调用,也就是说windows启动之后,驱动程序是无法调用这个中断去获知的. 那么,ramdisk驱动就只能靠猜, 比如说他可以知道你装了4gb内存,而目前只认了3.5gb, 那么多出来的512m应该在4g-4.5g这个物理地址段.
但是,这个只是猜测,bios并不一定会把多出来的内存映射到那里, 也可能是4.1g-4.6g区间,甚至不一定是连续的空间. 而且,各种奇怪的硬件设备也有可能自己占用特殊的物理地址空间,比如假设有一块硬件占用了4g开始的16m空间,那么显然这段地址里面就不再是内存了.
好吧,那么如果ramdisk强行去读写错误的地址空间会如何呢? 简单地说: cpu不会报错, 但是结果是不可预料的, 比如如果这段地址空间根本是一个memory hole,那么往里面写东西就是白写,读操作返回的有可能都是0xFFFFFFFF, 这样地话,作为一个虚拟磁盘而言,其结果就是数据损坏.
更为严重的是:如果有一块特殊的硬件的io空间映射在4g以上的一段地址,而ramdisk强行去写入数据,就会直接对那块硬件进行io操作,有可能会损坏硬件或者发生更奇怪的事情,比如该设备莫名其妙开始工作了等等.
第二: 即使你的运气很好,bios把多余的内存正好连续地映射在4g开始的空间,也就是ramdisk完全猜对了的情况,还有一个问题是,ramdisk无法保证有没有其他任何代码也会去读写这段地址空间. 因为ramdisk是跳过os的内存管理直接进行io的,其他驱动程序也有可能做相同的事情,这样的结果一样是数据损坏. 比如ramdisk先往里面写了一个文件的内容,之后另一个驱动程序也在相同地址写了一些其他数据,那么ramdisk再读出来的时候就拿不到原来的数据了.
综上,在你无法100%确保以上两点肯定没事的情况下,使用ramdisk还是有风险的,最坏情况是用户数据丢失甚至硬件设备损坏.
其实真的要用超过4g内存,还是有其他更安全的办法的,比如换64位系统,或者用server版本(完全支持pae的),或者直接patch kernel (这个在上面的帖子里面有链接,可以在vista 32位里面直接用到128g内存)
如果真的一定要用ramdisk,请在设置好之后一定要做一个测试: copy一个可以撑满ramdisk大小的真实文件(比如电影之类),然后再从ramdisk里面copy出来,再用fc /b和原始文件进行二进制比较.多做几次测试,以确保正确性.每一个使用ramdisk的机器都应该做这样的测试,因为每台机器bios映射的方式可能不一样.
当然这个只能基本确保第一个问题不存在,还是无法排除第二个问题的可能性.万一有个驱动突然想起来往4g以上某个地址写点东西的话,你的文件就坏了.
ps. 如果有人知道如何联系ramdisk作者的话,请替我转发下. 希望作者在发布这样一个好工具的同时,一定要详细说明可能造成的后果极其原因.
width:100%">
P0wer 发表于
一下来自互联网转载:(真假与否本人不做判断)
/thread--1.html
你拿个3年前的帖子& &发到这什么意思?
ramdisk一直都在更新& & 如果你觉得这帖子有参考价值 你可以无视& &ramdisk我是一直在用 8G内存 32位系统照样不浪费&&
width:100%">
bendian 发表于
你拿个3年前的帖子& &发到这什么意思?
ramdisk一直都在更新& & 如果你觉得这帖子有参考价值 你可以无视&&...
3年前的帖子未必没有参考价值,因为很多软件的改进只是改善BUG加强功能,运行原理未必会有变化。再说了,转发一个这样的帖子肯定也是出于好意,难不成他还能赚5毛?未免有点小人之心度君子之腹了
width:100%">
装个64位不会死人的
width:100%">
根本不会有任何提升,那些所谓的用内存做硬盘缓存的软件,在每次开机之后第一次运行程序,载入还是一样慢,即使不用那些软件,只要是Windows7系统,第二次载入的时候也是秒开。完完全全是心理作用,Windows7本身自己带的缓存机制就是把空闲内存当作磁盘的预读和回写,根本不需要第三方软件,第三方软件除了跑分好看之外没有任何意义,除非你永不关机。
真的开让程序随时秒开,老老实实SATA3固态盘
width:100%">
nokia5510 发表于
3年前的帖子未必没有参考价值,因为很多软件的改进只是改善BUG加强功能,运行原理未必会有变化。再说了, ...
你以为你用的做缓存的软件不是同ramdisk一样的原理似的。
width:100%">
easybeing 发表于
你以为你用的做缓存的软件不是同ramdisk一样的原理似的。
我就是亲身体验了用RAMDISK之后没多少的性能改善和一堆莫名其妙问题才又不用的。我现在根本不用缓存软件。民用环境,自己能折腾的比系统管理还好的人,我看没几个,至少我是不行
width:100%">
我用的是fancycache,不过用的分盘的,ramdisk用了以后感觉没啥效果,fancycache效果还是有,但是,但是我的一切都是目测,没有进行过任何测试
width:100%">
& 北京绝对领域咨询有限公司为什么我拍4g内存条,windows8网页开了几个就缓存满了 怎么解决-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
为什么我拍4g内存条,windows8网页开了几个就缓存满了 怎么解决
来源:互联网 发表时间: 2:42:54 责任编辑:鲁晓倩字体:
为了帮助网友解决“为什么我拍4g内存条,windows8网页开了几个就缓存满了 怎么解决”相关的问题,学网通过互联网对“为什么我拍4g内存条,windows8网页开了几个就缓存满了 怎么解决”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:为什么我拍4g内存条,windows8网页开了几个就缓存满了 怎么解决,具体解决方案如下:解决方案1:右键点击“这台电脑(win8是计算机)”→属性→左侧的“高级系统设置”→性能框中点击“设置”→“高级”选项卡→在虚拟内存框中点击“更改”然后就可以调整虚拟内存大小,虚拟内存太小无论物理内存多大都可能会弹出内存不足的提示解决方案。我推荐你选中“自动管理所有驱动器的分页文件大小”,然后确定你需要检查一下虚拟内存的设置解决方案2:
这不应该啊,我开Java虚拟机和dnf加起来才3g多
2个回答1个回答1个回答7个回答3个回答5个回答1个回答1个回答2个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号2015年1月 扩充话题大版内专家分月排行榜第二
2014年12月 扩充话题大版内专家分月排行榜第三
2013年10月 总版技术专家分月排行榜第三
2014年3月 Java大版内专家分月排行榜第一2014年1月 Java大版内专家分月排行榜第一2013年12月 Java大版内专家分月排行榜第一2013年11月 Java大版内专家分月排行榜第一2013年10月 Java大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。查看:4339|回复:7
初级工程师
各位大侠谁知道,我的windows server 2012搭建的AD服务器,我的服务器是一台虚拟机内存总大小4GB。内存使用率一直90%左右,在任务管理器中也没有找到占用内存较大的进程。发现任务管理器里的所有程序内存全部加起来还不到2GB。急求解答 多谢
高级工程师
装个process explorer看看
初级工程师
引用:原帖由 beanxyz 于
07:01 发表
装个process explorer看看 使用了 没看出什么异常啊 发愁
你要点左下角的显示所有用户进程
记得点“引用/回复” 我才能跟踪你的问题与反馈。
及时反馈也是对帮助你的人表示感谢的一种。
补充或更正我的回答,可以获得加分奖励哦!
引用:原帖由 dengdelei 于
20:47 发表
各位大侠谁知道,我的windows server 2012搭建的AD服务器,我的服务器是一台虚拟机内存总大小4GB。内存使用率一直90%左右,在任务管理器中也没有找到占用内存较大的进程。发现任务管理器里的所有程序内存全部加起来还不到2 ... 虚拟机分配的多少内存?是否动态分配?
天行健,君子以自强不息。地势坤,君子以厚德载物!
Windows Server\Exchange\VMware技术支持QQ:!
初级工程师
引用:原帖由 kangl 于
10:17 发表
虚拟机分配的多少内存?是否动态分配? 4GB 不是动态
引用:原帖由 dengdelei 于
18:54 发表
4GB 不是动态 所以内存使用就是正常了,因为分配给虚拟机固定内存4G!
天行健,君子以自强不息。地势坤,君子以厚德载物!
Windows Server\Exchange\VMware技术支持QQ:!
高级工程师
你是虚拟机的内存使用到90%还是宿主机啊?
你可以通过任务管理器看看,是什么程序使用的内存:
(20.46 KB)}

我要回帖

更多关于 c语言内存分配 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信