禁用不是好事 走出虚拟内存禁用的误区

最近大家都经常谈论的话题,就是DDR内存的大降价,DDR266从400多元的位置暴跌到200元左右,很多人都用上了512MB甚至1GB的内存,于是有一种观点也在部分玩家中流行起来,说是禁用虚拟内存、禁止Windows页面文件交换、强行命令数据在内存中处理,可以加快数据读写效率,是不是真的这样呢?

  根据应用需要设置

  笔者认为,这种说法要分情况对待,不能随便就说禁用是好事。

  首先,要搞清楚什么是“大内存”配置。当初设计Windows使用虚拟内存本身是因为物理内存很贵,一般都不会超过128MB容量,需要硬盘空间作临时缓冲——也就是说,你应该把应用时需要多少物理内存和自己实际拥有的内存作一个比较,如果实际拥有的内存少于应用峰值,就会遇到麻烦了。

  一般来说,如果要进行平面大图、3D动画渲染等数据量很大的任务,不应禁用虚拟内存;如果经常要打印带大量图片的文档,禁止虚拟内存也会让程序出现错误。因为像Word一类软件打印之前要生成缓冲文件,再传输到打印机上,图片尺寸较大、分辨率较高时,需要的缓冲区容量也很大,笔者以前帮助广告美工出设计图时,就遇到打印一张图生成将近300MB临时文件的情况。因为Windows和应用程序本身也是需要一定内存来运行的,如果你是512MB的配置,禁用了虚拟内存,很有可能中途报告虚拟内存不足,强行退出造成打印纸张及油墨的浪费。

  所以,必须根据你的任务应用环境,来决定是否禁用虚拟内存。即使是把虚拟内存大小固定设置,也必须谨慎,否则在运行大型应用软件的时候才出现虚拟内存不足的提示,整个系统会因为CPU的占用率极高而变得很慢,此时再改动就没那么方便了。

  考虑操作系统的因素

  在不同的操作系统下,虚拟内存的设置或禁用也是不同的,不能一概而论。

  因为架构问题,Windows 9x/Me对大于256MB的内存有先天的不足,大于这个数量的内存,Windows 98会出现不稳定及启动速度变慢的情况。如果使用了大内存加上禁用虚拟内存,不稳定的因素将会进一步增加。Windows 2000/XP可有效管理的内存容量为1GB左右,大于这个数目也会出现不稳定的情况,而且视主板BIOS型号及芯片组性能而不同。

  另外,Windows本身的设计就是,一旦发现有进程转入不活跃状态,就会把分配给它的内存空间映射到交换文件中,尽可能空出物理内存给其它活动的线程,并不是用完物理内存才开始动用交换文件。因为如果等到物理内存用完再调用,就已经太迟了,在配置较低的机器上势必造成数据传输和处理停滞。所以禁止虚拟内存从原则上来讲,最容易引起Windows异常,即使不出现运行不了的故障,也会频繁地提示虚拟内存不够,请重新设置云云,让你不胜其烦。

  如何禁用虚拟内存

  对于拥有很大容量内存的朋友,如果真想禁用虚拟内存加快运行速度,其实可以用折中的办法“骗”过Windows,就是把物理内存划出一部分来虚拟成物理硬盘:

  1.Windows 98

  可以在Config.sys里加入一句:
  DEVICE=C:\WINDOWS\RAMDRIVE.SYS 23000 /E(请根据自己的Windows所在分区适当设置)
  这句话就是利用内存由Ramdrive.sys虚拟出一个分区,其中23000是你希望使用多少物理内存,单位是KB,如果你有1GB,可以把这个数字设到300000到500000左右,即300~500MB,然后把虚拟内存设置到该虚拟出的分区上,程序就完全在物理内存中运行了。

  2.Windows 2000/XP

  必须依靠第三方的工具软件来虚拟物理硬盘,然后再把Pagefile.sys页面文件设到该虚拟盘上,实现同样效果;或者可在System.ini中的“[386enh]”底部加入一句,ConservativeSwapfileUsage=1,让Windows优先使用物理内存,尽量不要强行直接禁用虚拟内存交换文件。

  结论

  笔者认为,禁用虚拟内存达到的加速效果很有限,加上一般Windows的默认设置比较适当,尤其是Windows 2000/XP默认设置对虚拟内存的管理很好,尽量不要随意更改,否则出了问题你很难判断和分析。

  题外话:有关内存的一些故障分析

  有时,Windows出现一些和内存有关的故障提示,不一定是和内存有关;而一些看似和内存无关的故障,却真是内存引起的,很有隐蔽性。

  比如:你用PQ分区大师之类的工具改过分区簇的大小,当簇小于默认值时,Windows 98运行磁盘扫描就可能会报内存不足,而在Windows 2000和Windows XP下则正常——也就是说,这跟内存根本没关系。

  再比如:有时开机进入Windows时,系统会提示你注册表错误,是否恢复,当你选恢复后,再次重启,还是同一个提示,这种故障,却多半是内存条或散热方面出了问题引起的,需要更换内存或是风扇了。

  所以,Windows的提示有时会误导用户,如果反复出现同一种故障,按其提示解决不了,应考虑Windows误报的可能性。

(0)

相关推荐

  • 禁用不是好事 走出虚拟内存禁用的误区

    最近大家都经常谈论的话题,就是DDR内存的大降价,DDR266从400多元的位置暴跌到200元左右,很多人都用上了512MB甚至1GB的内存,于是有一种观点也在部分玩家中流行起来,说是禁用虚拟内存.禁止Windows页面文件交换.强行命令数据在内存中处理,可以加快数据读写效率,是不是真的这样呢? 根据应用需要设置 笔者认为,这种说法要分情况对待,不能随便就说禁用是好事. 首先,要搞清楚什么是"大内存"配置.当初设计Windows使用虚拟内存本身是因为物理内存很贵,一般都不会超过128M

  • 走出JavaScript初学困境—js初学

    从开始接触JS这东西有一年时间了,心头总是有一些说不出来的苦闷.在论坛里也常常有人这么说.那么苦在何处呢?总是感觉学的不深入,一些简单的东西可以做但也是不能得心应手.能不能把这种苦再说的具体点儿呢?都说了是"说不出来的苦闷"怎么具体呀? 何为难言之隐?说不出来,不能具体,不能把问题落到实处就不能得到解决的办法.这就是难言之隐!我认为这也就是初学者的"困境".之所以要用"我认为"正好迎合了本文标题中的"心得"二字.如果能对大家有

  • jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击

    本文实例介绍了四种jquery禁用多种功能的方法 1.禁用F5刷新jQuery实例代码 F5具有刷新网页的功能,可能有时候需要禁用此功能,下面就通过代码实例介绍一下如何实现此功能. 代码如下: $(document).ready(function(){ $(document).bind("keydown",function(e){ var e=window.event||e; if(e.keyCode==116){ e.keyCode = 0; return false; } }) }

  • Sql Server 查询性能优化之走出索引的误区分析

    据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是,或者干脆把整个查询SQL直接发给DBA,让DBA直接帮忙优化了,所以造成的状况就是开发人员对于索引的理解.认识很局限,以下就把我个人对于索引的理解及浅薄认识和大家分享下,希望能解除一些大家的疑惑,一起走出索引的误区 误区1.在表上建立了索引,在查询时用到了索引的列,索引就一定会生效 首先明确下这样的

  • 禁用不是好事 虚拟内存禁用的误区

    最近大家都经常谈论的话题,就是DDR内存的大降价,DDR266从400多元的位置暴跌到200元左右,很多人都用上了512MB甚至1GB的内存,于是有一种观点也在部分玩家中流行起来,说是禁用虚拟内存.禁止Windows页面文件交换.强行命令数据在内存中处理,可以加快数据读写效率,是不是真的这样呢? 根据应用需要设置 笔者认为,这种说法要分情况对待,不能随便就说禁用是好事. 首先,要搞清楚什么是"大内存"配置.当初设计Windows使用虚拟内存本身是因为物理内存很贵,一般都不会超过128M

  • 走出房间Flash高智商,建议大家试试娱乐一下 原创

    Flash动画 在线播放 截止至2008年1月20日19:29分,通关了,最后发现原来最后得到文件的博士是假的,真的博士竟然是貌是从楼上摔下来的人,作者也太牛逼了,成功也是失败

  • 走出传统营销模式 短信推广受商家热捧

    是什么原因使得商家们放弃传统的宣传手法,又是什么原因支持商家们使用短信来宣传活动呢?笔者找到了一家公司的相关负责人. 从该负责人那了解到,往年商家的宣传都是广告牌加传单,还有定点寄送宣传册的手法来进行活动宣传.那个时期的市场调查报告显示:传单的阅读率低到10%,丢弃率更是高达85%-90%以上;而宣传册也有很多客户收不到,或是收到了没有时间看,不仅浪费人力物力,还浪费资金,也达不到目的,更会使得宣传受阻.这种情况一直是宣传的大难题,直到短信平台的出现,才带来了转机. 该公司的负责人还跟笔者说到,

  • 浅析虚拟主机服务器php fsockopen函数被禁用的解决办法

    一.如何禁用fsockopen()下面是两种常用的禁用fsockopen的方法.1.修改php.ini,将 disable_functions = 后加入 fsockopen 2.修改php.ini,将 allow_url_fopen = On 改为 allow_url_fopen = Off 二.如何解决fsockopen函数被禁用1.如果服务器没有同时禁用pfsockopen,那么直接将fsockopen函数替换为pfsockopen.具体操作:搜索程序中的字符串 fsockopen( 替换

  • BootStrap中按钮点击后被禁用按钮的最佳实现方法

    Bootstrap中点击后禁用按钮与js有什么区别呢要如何来实现呢,今天我们就一起来看一篇关于Bootstrap中点击后禁用按钮的最佳方法,具体的例子如下所示. 为了防止在Bootstrap中点击按钮多次提交,所以希望点击按钮后禁用按钮. 具体实现方法如下: //禁用button $('button').addClass('disabled'); // Disables visually $('button').prop('disabled', true); // Disables visual

  • 利用jquery实现下拉框的禁用与启用

    话不多说,附上实例代码,仅供大家参考 禁用下拉框 //下拉框禁用 $("select").each(function () { $("#" + this.id).attr("disabled", true); }); 启用下拉框 //下拉框启用 $("select").each(function () { $("#" + this.id).removeAttr("disabled");

随机推荐