020-29133788
    资 讯
    您的位置:首页 >> 资 讯 >> 电脑维修维护 >> 其他硬件 >> 正文
    U 盘最佳化的闹剧 --- RAM 最佳化工具的不实承诺

    点击:   发布日期:2013-03-23

    本文来自 www.020fix.com



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

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

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

    @小标 U 盘最佳化工具的使用者介面

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

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

    @小标 Windows U 盘管理

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

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

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

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

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

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

    @小标 可以使用的U 盘

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

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

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

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

    @小标 建立可用U 盘

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

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

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

    @小标 其他U 盘最佳化工具的宣称

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

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

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

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

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

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

    @小标 假软体

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