广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 7632 个阅读者
 
<<   1   2  下页 >>(共 2 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
忆枫 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x4 鲜花 x52
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[教学][RAM] 记忆体最佳化的闹剧 --- RAM 最佳化工具的不实承诺
文章来源:Windows & .NET Magazine, April 2004
作者:Mark Russinovich

能够重组记忆体并增进效能的工具,乍听之下似乎不错,但真是如此吗?本文带你一探记忆体最佳化工具的真章。

当您浏览网页的时候,你有时候可能会看到浏览器跳出像是「重组你的记忆体并且增进效能」,另外还有像是「减少应用程式与系统的失败,并且释放没有使用的记忆体」。如果你按下滑鼠,连结到广告所提供的工具网站,你就会看到只要多付 9.95 美元、14.95 美元或 29.95 美元,就可以提供你达到这个目的的工具。听起来似乎还不错?这些工具似乎看起来可以替你做一些有用的工作,但其中的记忆体最佳化工具是没有效果的,且更糟的是,可能会严重地影响效能。

你可以找到好几十种所谓的「记忆体最佳化工具」,有些是商业软体,有些则是一些免费软体。你可能会想在自己的系统上执行像是这样的产品,这些产品真正能做什么?而这些产品是否愚弄了你,让你相信产品所声称的效果?本文就让我们深入的剖析记忆体最佳化工具的内部,看这些工具是如何控制 Windows 内部的可见记忆体计算。

@小标 记忆体最佳化工具的使用者介面

记忆体最佳化工具一般所提供的使用者介面,可以显示可用记忆体的图形显示,以及以线条呈现阀值,如果记忆体低于该阀值,工具就会采取动作。另外一个线条则显示最佳化工具在执行的时候,尝试释放的记忆体数量。通常你可以设定其中一个或是两者的等级;使用手动的方式启动记忆体最佳化或是使用排程的方式执行最佳化。某些工具则还可以显示执行于系统上的处理程序。

当排程好的最佳化工作执行的时候,工具的可用记忆体计数器通常会往上爬升,有时候这个数字会大幅增加,让使用者感觉这个工具实际上释放了许多记忆体可以让你的应用程式执行。为了了解这些工具实际上是如何让可用记忆体上升的,我们必须先了解 Windows 管理实体记忆体的方式。

@小标 Windows 记忆体管理

与大部分目前的作业系统类似,Windows 采用了根据需求而规划的页次虚拟记忆体系统。作业系统使用虚拟记忆体提供应用程式一个假象,就是电脑拥有比实体记忆体更多记忆体。

在 32 位元的 Windows 系统上,处理程序可以定址虚拟记忆体达到 4GB,作业系统会在处理程序和系统之间平均的分配。因此,根据使用的量,处理程序可以配置达到 2GB 的虚拟记忆体。配置给所有处理程序的所有虚拟记忆体,不可以超过系统页次档案以及其大部分实体记忆体的总量(作业系统保留相当小部份的实体记忆体)。

因此针对处理程序,只要有足够的页次档案,可以配置超过电脑实体记忆体能力的虚拟记忆体,Windows 记忆体管理员子系统必须在处理程序之间与快取管理员的快取档案资料分享实体记忆体。记忆体管理员指定给每个处理程序(例如 Microsoft Word、记事本、档案总管)一部分的实体记忆体,我们称之为处理程序的工作集。Kernel 和驱动程式可以使用页次的部分,除了可以使用页次的 Kernel,记忆体缓冲区之外的部分,我们称之为页次集区。由快取管理员管理的实体记忆体,会指定他们自己的工作集,称之为系统工作集。

记忆体管理员可以扩充和缩减系统和处理程序的工作集,以回应处理程序快速存取他们的程式码和资料的需求。电脑的记忆体管理硬体,需要 Windows 管理工作集和虚拟记忆体以页次大小区块的方式管理(在 32 位元的 x86 处理器,页次的大小一般是 4096 位元组,然而,作业系统和需要耗用大量记忆体的应用程式,当有可能的时候,也使用单位比较大的 4MB 页次作为最佳化选择)。

当处理程序存取不存在于工作集的虚拟记忆体的页次时,处理程序会产生页次错误硬体例外情况。当发生这种情况的时候,记忆体管理员会指定可以使用的实体记忆体指定页次,以储存新存取的资料。另外,记忆体管理员可能会决定藉由增加页次到工作集中,扩充处理程序的工作集。然而,如果记忆体管理员需要处理程序的工作集够大,就会使用新的页次与已经存在于工作集的页次进行交换,选择取代处理程序最近所存取的页次,这是假设处理程序最近不太可能会存取该页次。

当记忆体管理员从处理程序工作清单移除页次的时候,必须决定要对页次做什么事情。如果页次已经修改了,记忆体管理员会先放置到修改的页次清单,页次的清单最后会写到页次档案,或是到网页所对应的记忆体对应档案中。从被修改的页次清单中,记忆体管理员会挪动页次到名称为待命清单的集区。没有修改过的页次,则会直接到待命清单中。因此,你可以将待命清单当成是资料的快取。

@小标 可以使用的记忆体

我们之前提到记忆体管理员会提供可以使用的实体记忆体页次,给产生页次错误的处理程序,但是我们还没有说明如何定义可用的记忆体。待命清单是记忆体管理员认为是实体记忆体的一部分。其他成为可用记忆体的集区,是包含属于配置虚拟记忆体资料的页次(例如:包含已经离开处理程序的),另外还有已经清空,以及后续被记忆体管理员的低优先性空页次执行绪所填入的空资料。这些类型的页次,会分别储存在记忆体管理员的可用清单和空页次清单。

图 2 显示了发生在工作集和页次清单之间的转换。每一秒的时候,系统执行绪会启动,然后呼叫记忆体管理员的工作集管理员,检查系统和处理程序的工作集。如果可用记忆体偏低,工作集管理员会从处理程序移除在过去一秒还没有产生的许多页次错误。被移除的页次会到被修改或待命清单中,以准备提供于可用记忆体。这种调校机制有个重要的副作用,如果系统需要提供其他处理程序记忆体,记忆体管理员就会从闲置处理程序的工作集取得页次。这样一来,那些处理程序的工作集最后就会消失,也就是说那些处于闲置状况的处理程序,如果闲置时间过长,最后会没有实体记忆体可以使用。

当处理程序需要有新的实体记忆体页次的时候,记忆体管理员会先判断所存取的处理程序页次是否位于待命或修改的页次清单。如果页次从处理程序工作集移除,并且基于其他的目的没有重复使用,页次就会在这些清单中。将页次放回到处理程序工作集,我们称之为软页次错误,因为与硬页次错误不同的是,并不会产生从磁碟读取页次档案或是其他的档案。

如果页次不在待命清单,或是在修改的页次清单中,记忆体管理员就会从已经有页次的清单取得页次,首先检查可用的清单,然后是空页次清单,最后则是待命清单。如果没有记忆体可以取得,记忆体管理员就会触发「平衡集管理员」,进行处理程序工作集的整理,并且产生三个清单的其中之一,以取得可以使用的记忆体。如果记忆体管理员必须从空页次、可用或待命清单移除页次以供重复使用,则决定于如何存取目标的程式码或资料,其中包括了从页次档案读取资料或可执行档映像内容,或是建立空资料(如果应用程式配置了新的资料,而页次并不是从空页次清单取得)。

@小标 建立可用记忆体

在了解了记忆体管理员的行为之后,我们现在可以将注意力放到记忆体最佳化程式的工作上。记忆体最佳化程式所显示的可用记忆体数据,与在工作管理员中,「效能」页次的「实体记忆体」可用部分的值是一样的。这个值是待命、零页次与可用清单的总和。系统快取记忆体则是待命清单和系统工作集的总和(在 Windows NT 4.0 以及之前的版本,档案快取的值只反应了系统工作集)。

记忆体最佳化工具藉由配置,然后释放大量的虚拟记忆体,应用了记忆体管理员行为的优点。图 4 显示了记忆体最佳化工具在系统上的产生的效果。第一列显示了在最佳化前的工作集与可用记忆体。第二列显示了记忆体最佳化工具,藉由在短时间中增加许多的页次错误,建立了高记忆体需求。为了回应这样的需求,记忆体管理员增加了最佳化器的工作集。这个工作集的扩充发生在可用记忆体的耗用(当可用记忆体变低),使用了其他处理程序工作集的耗用。第三列显示了在记忆体最佳化程式释放记忆体之后的情况,记忆体管理员会移动所有指定给记忆体最佳化工具的所有页次到可用清单,因此可以增高可用记忆体的值。大部分的最佳化器隐藏了在第一个步骤的时候可用记忆体快速降低的事实,但是如果你在最佳化的时候执行工作管理员,你经常可以看到记忆体降低的情况。

虽然取得更多可用记忆体似乎可以获得效益,但是情况并非如此。由于记忆体最佳化工具强迫升高可用记忆体,因此也就强迫其他处理程序资料和程式码从记忆体释出。假设你正在执行 Word,而最佳化器强迫进行可用记忆体的升高,Word 的开启文件文字以及程式码在最佳化之前存在于记忆体中(也就是在实体记忆体中),必须从磁碟再次读取,你才能继续编辑文件。效能的降低会对伺服器造成影响,因为在待命清单以及在系统工作集中快取的档案资料(另外还有被活动中的伺服器应用程式所使用的程式码和资料),可能都会清除。

@小标 其他记忆体最佳化工具的宣称

某些厂商会针对他们的记忆体最佳化工具产品作出额外的宣称。像是你可能会看到产品能够释放没有使用的处理程序所占用的记忆体(如那些在工作列中执行的程式)。所有的这些宣称都是不真实的,因为 Windows 会自动的清除闲置处理程序的工作集。记忆体管理员会控制所有必要的记忆体最佳化。

记忆体最佳化工具的开发人员也会宣称他们的产品能够对记忆体进行重组。配置的动作会释放大量的虚拟记忆体,产生可能的副作用,进而产生连续的可用记忆体区块。然而因为虚拟记忆体是从处理程序配置实体记忆体,处理程序无法直接从拥有虚拟记忆体获得好处,虽然后面是连续的实体记忆体。随着处理程序的执行及底下工作集的减少或成长,他们的虚拟记忆体对实体记忆体对应会成为断离情况,而不管连续记忆体情况如何。

拥有连续的可用记忆体,可以在一种情况中增进效能:当记忆体管理员最大化 CPU 记忆体快取的行为,会使用称为「页次染色」(page coloring)的机制,判断从可用或空页次清单的哪个页次,要指定给处理程序。然而,任何由于连续可用实体记忆体所得到小小效益,可能会由于程式码与资料从记忆体被迫移出,而减损所带来的价值。

最后,厂商通常会宣称记忆体最佳化工具,可以重新取得记忆体记忆体遗漏的部分。这样的说法可能所有说法中最大的错误。

记忆体管理员不管在任何时候,都知道实体与虚拟记忆体属于哪个处理程序。然而如果处理程序配置了记忆体,可能会由于程式的 Bug 导致记忆体在使用后没有释放的情况(一般称之为遗漏--leak),记忆体管理员无法确认所配置记忆体不会在相同点被存取,因此会一直等待,直到处理程序结束,并且释出其所拥有的记忆体为止。

即是在不会会产生遗漏的处理程序中,记忆体管理员工作集的缩减,最后还是会从处理程序的工作集中,任何指定给遗漏虚拟记忆体的任何实体页次取得记忆体。该处理程序会传送遗漏页次给页次档案,并且让系统使用实体记忆体以供其他处理程序使用。因此,记忆体遗漏只会对可用实体记忆体产生有限的影响。真正的影响是在虚拟记忆体的耗用上(工作管理员称之为 PF Usage 和 Commit Charge)。没有工具可以对虚拟记忆体的耗用做任何事情,除非直接删除耗用记忆体的处理程序。

@小标 假软体

我们已经看过记忆体最佳化工具的一些说法。如果你更仔细的研究,你会发现厂商会在网站上加上一句推翻自己长久以来的宣称—产品可能对系统的效能没有任何影响,并且也可能会降低系统的效能。即使不知道这些产品是如何应用记忆体管理员的特性,让记忆体的统计数能上升,一般在常识上我们可以这样想,若记忆体最佳化工具有效,Microsoft 开发人员应该很早就会直接整合到 Kernel 部分了。



献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2005-12-20 23:44 |
SaintChris 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x8 鲜花 x712
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我看不懂...有没有白话文版本或是结论版?! 我看出的结论是...「超级兔子整理记忆体工具是整理假的」@@"

如果『Windows 会自动的清除闲置处理程序的工作集』,那这样不就根本不需要释放记忆体了吗?!那怎么又还会有众多的整理记忆体程式存在呢?!而且几乎有windows就有这种工具在...DOS时代就没见过= ="

04年四月的文章...好旧...


献花 x0 回到顶端 [1 楼] From:台湾数位联合 | Posted:2005-12-21 02:22 |
clickcoey
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x4
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

唉,大部分网上可以找到的ram优化软件我都用过,分别是........"没",你的ram一定要够多,我用了1g ram后明白,优化软件是不必要的道理


献花 x0 回到顶端 [2 楼] From:福建省 | Posted:2005-12-21 11:51 |
pkkbkraa 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
终身成就奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x6 鲜花 x1760
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

好长的文章
不过我连看都懒的看= =

关于这类型的文章已经太多了

我也曾经说过
最好是在作业系统与所需的软体安装好了之后
除了防毒、防火墙之外
其他的常驻程式通通给移除掉
当要使用的时候花个五秒钟去执行它不会有什么难的
懒的搞...开机的时候就要多花了一分钟以上的时间...
到底什么才叫浪费时间啊?我真搞不懂= =

还有...这是转贴文...贴错区了


献花 x0 回到顶端 [3 楼] From:未知地址 | Posted:2005-12-21 11:59 |
pkkbkraa 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
终身成就奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x6 鲜花 x1760
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用SaintChris于2005-12-21 02:22发表的 :
我看不懂...有没有白话文版本或是结论版?! 我看出的结论是...「超级兔子整理记忆体工具是整理假的」@@"

如果『Windows 会自动的清除闲置处理程序的工作集』,那这样不就根本不需要释放记忆体了吗?!那怎么又还会有众多的整理记忆体程式存在呢?!而且几乎有windows就有这种工具在...DOS时代就没见过= ="

04年四月的文章...好旧...
dos以前还要宣告xms跟ems...
也算是一种啦...
不过现在的整理软体...我觉得都是华而不实


献花 x0 回到顶端 [4 楼] From:未知地址 | Posted:2005-12-21 12:01 |
卓越总裁
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x13
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

^^"
长篇大论的文张,看到一半就看不太下去了
不过大概知道他想表达些什么
其实....老实说啦
这只是个心态上的问题而已
有用...多多少少会有个爽度在
内心多多少少会有个小依靠
不过要真真正正的看到效果的话
还是买大融量的记忆体才是最实在的


献花 x0 回到顶端 [5 楼] From:台湾中华电信 | Posted:2005-12-21 12:27 |
喔耶 手机
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x41
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

那些释放记忆体的软体我现在都不敢用
在他释放的时候LAG的要命
明明就是不够用
你释放后还是要去呼叫回来的
花点钱加装RAM比较实际


献花 x0 回到顶端 [6 楼] From:台湾教育部 | Posted:2005-12-21 13:35 |
SaintChris 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x8 鲜花 x712
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用pkkbkraa于2005-12-21 12:01发表的 :
dos以前还要宣告xms跟ems...

耶...有点唤起我的印象说@@" 不过那时候通常都是因为单独程式就造成记忆体不足够...那时候我的电脑只有4MBs... = =" 现在是1024...


献花 x0 回到顶端 [7 楼] From:台湾数位联合 | Posted:2005-12-21 18:59 |
any 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x33
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

记忆体最佳化
win98时效果比较好
xp就没什么用


献花 x0 回到顶端 [8 楼] From:台湾中华电信 | Posted:2005-12-21 19:23 |
pkkbkraa 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
终身成就奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x6 鲜花 x1760
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用SaintChris于2005-12-21 18:59发表的 :


耶...有点唤起我的印象说@@" 不过那时候通常都是因为单独程式就造成记忆体不足够...那时候我的电脑只有4MBs... = =" 现在是1024...
对啊...以前记忆体贵的很= =
而快取又都是固定的...通常都不够用
所以都要先宣告...将部份的记忆体挪成xms或是ems才能....玩游戏XD


献花 x0 回到顶端 [9 楼] From:台湾台湾索尼 | Posted:2005-12-21 20:05 |

<<   1   2  下页 >>(共 2 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.057609 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言