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

最近大家都经常谈论的话题,就是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

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

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

  • iOS开发之TextField禁用粘贴、选择和全选功能

    众所周知,TextField默认情况下,双击会出现"Paste"等提示复制粘贴的快捷菜单,方便用户快速编辑文本,但很多情况下,我们并不希望用户能够粘贴文本[虽然这样不友好,但万一产品经理要这么实现呢?],那么我们可以这样做: 方法 自定义TextField 重写canPerformAction方法 class CustomTextField: UITextField { /// 是否只是用于显示(禁用粘贴.选择和全选功能) var displayOnly = false /// 禁用粘

  • jquery实现文本框的禁用和启用

    话不多说,附上实例代码,仅供大家参考 禁用文本框 //文本框禁用 $("input[type='text']").each(function () { $("#" + this.id).attr("disabled", true); }); 启用文本框 //文本框启用 $("input[type='text']").each(function () { $("#" + this.id).removeAttr

  • JS禁用浏览器退格键实现思路及代码

    上周提交了一个项目(内部使用的),一同事提出个BUG,说要禁用退格键(backspace或者叫后退键),因为这和他的习惯不一样,担心万一文字录入一半,他按了退格键,那整个页面的内容就白填了,然后信誓旦旦的说他做的系统中后退键都是不能用的,我这个系统有问题,当时因为事多,只把这个问题记录下来了,后来查了下他以前做的项目,也没有对退格键进行处理.自己的项目都没处理,到我这嚷嚷来了,算了,不和年轻人一般见识.不就禁用个后退键,简单. 其实说禁用也不是完全禁用,后退键在各浏览器下默认为点击了一下后退按钮

  • php禁用函数设置及查看方法详解

    本文实例讲述了php禁用函数设置及查看方法.分享给大家供大家参考,具体如下: 打开PHP.INI,找到这行: disable_functions = 在后面那里加上要禁用的函数,如禁用多个函数,要用半角逗号 , 分开 给个例子: 复制代码 代码如下: disable_functions = passthru,exec,system,popen,chroot,scandir,chgrp,chown,escapesh ellcmd,escapeshellarg,shell_exec,proc_ope

  • Win2008 R2 WEB 服务器安全设置指南之禁用不必要的服务和关闭端口

    安全是重中之重,以最少的服务换取最大的安全.通过只启用需要用到的服务.关闭暂时用不到的服务或不用的服务,这样最大程度来提高安全性. 作为web服务器,并不是所有默认服务都需要的,所以像打印.共享服务都可以禁用.当然了,你的系统补丁也需要更新到最新,一些端口的漏洞已经随着补丁的更新而被修复了.网上的一些文章都是相互复制且是基于win2003系统较多,而win2008相比win2003本身就要安全很多. 那我们为什么还要谈关闭端口呢,因为我们要防患于未然,万一服务器被黑就不好玩了. 禁用不必要的服务

  • windows server 2008 R2 禁用ipv6和隧道适配器

    在windows server 2008 R2操作系统下部署weblogic web application,部署完成后进行测试,发现测试页的地址使用的是隧道适配器的地址,而不是静态的ip地址,而且所在的网络并没有ipv6接入,因此决定将ipv6和隧道适配器禁用,操作如下: 禁用ipv6很简单,进入 控制面板\网络和 Internet\网络和共享中心 单击面板左侧"更改适配器设置"进入网络连接界面,选择要设置的连接,右键选择属性,取消Internet 协议版本 6 (TCP/IPv6)

  • ASP.NET Core 2.0中Razor页面禁用防伪令牌验证

    在这篇短文中,我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证. Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架,用于构建动态的.数据驱动的网站:支持跨平台开发,可以部署到Windows,Unix和Mac操作系统. 跨站点请求伪造(也称为XSRF或CSRF)是对Web托管应用程序的攻击,因为恶意网站可能会影响客户端浏览器和浏览器信任网站之间的交互.这种攻击是完全有可能的,因为Web浏览器会自动在每一个请求中发送某些身份验证令牌到请求网站.这种

  • 在 Windows服务器中启用/禁用SMBv1、SMBv2和SMBv3的方法

    本文介绍如何在 SMB 客户端和服务器组件上启用/禁用服务器消息块 SMBv1.SMBv2 和 SMBv3. 注意:建议由专业技术工程师完成以下操作. 禁用 SMBv2 和 SMBv3 的影响 我们建议不要禁用 SMBv2 或 SMBv3.禁用 SMBv2 或 SMBv3 只能作为临时故障排除措施.请勿使 SMBv2 或 SMBv3 保持禁用状态. 禁用 SMBv2 的影响 在 Windows 7 和 Windows Server 2008 R2 中,禁用 SMBv2 会停用以下功能: 请求复合

随机推荐