如何防止Windows资源管理器缓慢读取文件内容以创建元数据?


20

我们的目录包含数百个视频文件。使用Windows资源管理器(Windows 7 64 Pro)浏览和重新排列这些目录时,资源管理器会降低到无法使用的水平,使用GB的RAM,并抢占或减慢其他程序(例如Media Center)使用同一磁盘的速度这正在进行中。

这伴随着“地址”插槽中一个非常缓慢增长的绿色条。

资源管理器似乎正在做的是读取视频文件内容以生成缩略图或获取其他元数据。这对我们的目的没有用,因此我们想禁用此行为。怎么做到的?


这些线程可能相关:


2014-04-14:建议和调查结果摘要

我认为目前我们对答案很满意,其余症状与Windows资源管理器无关。因此,本文总结了建议和我们学到的其他一些知识。

一般注意事项

磁盘唤醒:长时间闲置后访问磁盘时,最初的速度缓慢可能归因于磁盘已进入睡眠状态。

磁盘错误:显然,如果存在强制重试的硬件错误,这将严重降低Explorer和任何其他程序的速度。

磁盘争用:在同一驱动器上执行大量活动的其他程序显然会与资源管理器显示驱动器内容的尝试抗衡,并且速度较慢。如果资源管理器仅需要读取目录,则影响可能很小,但是如果资源管理器也需要读取每个文件的元数据,则争用问题将大大放大。

防病毒软件引起的磁盘争用:Explorer尝试读取元数据可能会提示AV软件首先读取并确定每个文件。考虑为受信任的文件类型(例如,Media Center保存的wtv文件)禁用AV。

资源管理器设置

禁用缩略图显示:“组织”→“文件夹和搜索选项”→“查看”→在“始终显示图标而不是缩略图”中打上复选标记,然后按应用并关闭。

禁用特定于视频的元数据的收集:Culprit文件夹→“属性”→“自定义”→在“为此优化文件夹”下:打开下拉菜单并选择“常规项”→在下拉菜单下的复选框中打勾在“应用于所有子文件夹”处→按应用并关闭。

进一步禁用特定于视频的元数据的收集:在罪魁祸首文件夹的“详细信息视图”中,删除基于视频文件元数据的所有列,而不是文件系统的目录信息中的所有列。这包括“长度(持续时间)”列,以及“日期”列(基于视频元数据,与文件系统的“创建日期”和“修改日期”列不同。)

在注册表中

禁用视频文件扩展名(例如wtv,mp3等)的“属性处理程序”。当然,这将适用于整个系统,而不仅仅是特定目录。可以使用RegEdit或第三方程序ShellExView完成。(有关详细信息,请参见答案。)

有关缩略图和其他缓存的更多信息

我们注意到,在禁用缩略图和元数据之后,当我们重新启用它们时,性能很快。(即,绿色的慢速条没有返回。)这表明更改对缩略图缓存做了一些操作,也许删除了它们,后来又重建了它们。事实证明,默认情况下,资源管理器将缩略图保存在每个目录中(在thumbs.db中),还保存在用户的AppData \ Local \ Microsoft \ Windows \ Explorer目录中的一组thumbcache * .db文件中。这些有可能进入a肿或缓慢的状态,删除它们可能会提示更快的操作。

(我们不知道)Explorer是否缓存任何其他元数据信息(例如,长度,日期,位置,保护等)。

其他互动

本身不属于Explorer,但可能有用的线索。

我们在任务管理器>资源监视器中注意到,Media Center执行不良行为,导致大量磁盘活动:一个Media Center组件ehrec.exe将无休止地循环读取一组特定视频文件中的几千个数据- -在一个驱动器上,大约有200个视频文件。好像Media Center无法完成从那些文件中读取元数据一样,只是继续尝试读取没有完整元数据的文件。就文件系统而言,这些文件似乎没有损坏(可以复制而不会出现问题)。可以想象,当我们要求资源管理器在此特定磁盘上显示目录时,Media Center的活动竞争了磁盘访问时间。我们断开了该驱动器的连接以进行其他测试。


感谢所有受访者。


如果PropertyHandlers键包含视频文件的扩展名,那么您链接的解决方案可能会很好地工作,然后删除GUID(有点指向其中包含元数据代码的dll)会很好地工作。您可以事先备份密钥。
cjb110

@ cjb110:您是否在猜测创建一个本质上为空的PropertyHandler密钥会使资源管理器无法获取元数据?这似乎是合理的,但是您是否真的尝试过?
gwideman 2014年

我几乎会尝试,但是没有Win7机器。假设PropertyHandler键是执行此操作的“主要”方法。如果您没有看到扩展名,那么我也不会打扰...但是尝试扩展名就不会造成任何伤害,因为您可以轻松备份更高级别的密钥。
cjb110 2014年

哦,完全删除扩展密钥似乎比删除或使GUID无效更好。
cjb110 2014年

1
好吧,这是我第一次在此站点上进行交互,我必须说,我对这里的处理方式印象深刻。我最初只想加入stackoverflow来解决一些与编程相关的问题,并且担心stackexchange会成为另一个“雅虎答案”。我很高兴事实并非如此。很高兴得知您似乎已解决问题!我们俩似乎也学到了一些东西!干杯!
2014年

Answers:


11

最后更新:

OP在他的提问中完全简洁地总结了他的所有发现。我没有理由删除我的建议,但是如果您想快速解决问题,我建议您阅读他的文章而不是我的文章。


您应该尝试两件事:

  1. 在资源管理器中,单击“组织”->“文件夹和搜索选项”->“视图”->在“始终显示图标而不是缩略图”中打勾,然后按“应用”并关闭。

  2. 现在,在“罪魁祸首”文件夹上单击鼠标右键->“属性”->“自定义”->在“为此优化文件夹”下:打开下拉菜单,然后选择“常规项目”->将复选标记放在下拉菜单下的框中向下菜单中的“应用于所有子文件夹”->按“应用”并关闭。这会将新的文件夹视图设置应用于所选的文件夹以及其中包含的所有子文件夹。

我是德国人,因此有德语版本的Windows,因此上面的某些选项翻译起来可能略有不同,但是您仍然应该能够找到它们。

更新1:

我认为您在使用元数据方面走在正确的轨道上。根据视频的编码方式,元数据可以位于开头,结尾或中间的某个位置(尽管很少见)。我猜想这些视频文件是用一些不寻常的属性编码的(您可能自己制作了吗?),这使得资源管理器从头到尾读取整个文件以提取元数据,如果有很多大文件,显然需要一段时间。在文件夹中。我已经看到资源管理器读取了一个巨大的exe文件的全长,以在最后显示嵌入式图标。

因此,我认为您已经找到解决方案,确定并禁用需要从资源管理器中的视图中提取元数据的列(以及禁用的缩略图),应避免资源管理器读取这些文件的需要,这应该可以解决您的问题。

您可能不应该使用的列如下所示:日期(如您发布的链接之一所述,日期与文件的创建日期有很大不同),长度,分辨率,位置。

您应该安全使用的列是可以直接从文件系统目录中读取的属性,例如:文件创建日期,文件修改日期,大小,文件类型。

如果您确实需要对应该禁用的某些属性进行排序,我认为也许最实用的解决方案是寻找替代文件浏览器,并检查其是否能更好地处理这种情况。然后,您可以像通常一样使用资源管理器,并使用备用文件浏览器来处理视频文件夹。

您还可以通过内置的命令行解释器cmd执行许多面向文件的基本操作,它不关心元数据,并且可以成为复制,移动或删除文件和文件夹的简单有效的工具。然后,您甚至可以使用批处理文件使事情自动化。但是,这很可能不是您要搜索的解决方案,因为cmd甚至没有图形用户界面。

更新2:

我刚刚阅读了您的第二次更新,并且很高兴看到您的问题似乎已经解决(至少现在是这样)。也许确实只是缩略图缓存变得人满为患的问题。如果您经常将文件从一个文件夹移到另一个文件夹,我可以想象那些thumbs.db文件越来越大。我怀疑它实际上为该文件夹中的每个文件都在该缓存文件中保留了缩略图。也许对于那些文件也有某种垃圾收集机制,但是在您的情况下它失败了。

因此,如果您要将视频文件从一个文件夹移到另一个文件夹,并且始终使用相同的文件夹(例如,不创建新文件夹),也许我们已经找到了问题的根源...

如果您的系统以后再次出现相同的症状,则可以尝试删除缩略图缓存。为此,您需要:

“ windowskey + r”->输入“ cleanmgr”,然后按回车键->选择视频文件所在的驱动器(仅当您实际有多个驱动器/分区时)->选择“清除缩略图缓存”或类似的命令->运行清洁


谢谢。这些建议的初始测试是混合的,因此可能还需要其他一些东西。我们将尝试更多的变体。
gwideman 2014年

我有更多的猜测,尽管我对此没有信心:您是否有可能运行多个防病毒程序?还是来自一个供应商的防病毒程序和来自另一个供应商的HIPS?您是否安装了任何编解码器或编解码器包?我最后的猜测是这些文件夹中的一个或几个损坏的文件。资源管理器是否只会降低视频文件夹的速度?
2014年

感谢您的其他想法。到目前为止,我已经添加了结果报告。防病毒:MS Security Essentials。没有我知道的添加编解码器。损坏的文件很难排除,但并非显而易见,因为启用后它们最终会产生缩略图。包含许多视频文件的文件夹中速度慢。可以肯定的是,“视频”方面使初始显示变慢了。“许多”方面可能会减慢排序速度。
gwideman 2014年

如果仅运行安全性要素,那么几乎可以肯定不是问题所在(不过,您可能应该寻找替代方法:link)。同时运行两个实时扫描仪会产生奇怪的问题,因此我只是猜测。排序某事物只是比较值,应该是一台计算机应该擅长的事物,我认为您在正确的轨道上进行了一些元数据的提取,从而减慢了该过程。
2014年

1
感谢您的其他评论。绝对同意以下原则:从目录中获取详细信息是快速的,而从每个文件读取的数据项则可能很慢。我们的主要用例是Windows Media文件,而不是某些自制格式。当然,总是有可能使用替代软件和/或命令行:-)但是,请放心,Explorer应该被击败!
gwideman 2014年

2

更改时有三个GPO设置,可能会在计算机上全局实现您想要的行为。

在此处输入图片说明

为此,请从命令行启动组策略编辑器。

gpedit.msc

导航到以下节点。

User Configuration\Administrative Templates\Windows Explorer

内置文档是了解每种设置的好开始。

请注意,您需要管理权限才能更改GPO设置。


谢谢,但这完全禁用了所有文件类型,所有目录的缩略图,对吗?如果这仅是用于视频文件,则它可能是一个候选解决方案,但我们不希望对普通图像禁用缩略图。无论如何,这可能是一个有用的测试。
gwideman 2014年

2
如果你想专门适用它的视频文件,你可能想看看一个类似的问题在这里回答:superuser.com/questions/152272/...
MFT

有趣的链接。看起来shexview为我在问题中链接的文章中提到的PropertyHandler reg键提供了UI。可能有用。+1
gwideman 2014年

1

我的解决方案是间接达成的。我注意到MKV文件包含一个“日期”,该日期不能通过常规方式更改,以便该文件在我获取时能够反映出来,如文件属性中所示。无奈之下,我将Windows文件资源管理器中的列从“日期”更改为“创建日期”,然后将视图选项设置为所有文件夹的默认值。这不仅解决了我的排序问题,而且GROD也得到了解决。不必深入研究每个文件的标记结构显然是解决问题的原因。


0

我在Windows 7、64位计算机上遇到了完全相同的问题。它开始于几个月前,当在外部Western Digital驱动器上打开文件夹时,任何文件夹中文件的元数据都需要花费几分钟才能显示,而我记得它们曾经几乎立即显示。打开一个文件,然后将其关闭,将导致整个文件夹再次刷新,又需要两分钟。所以我做了一些调查(解决方案如下):

  1. 我以安全模式启动笔记本电脑,Windows资源管理器的所有慢速问题都消失了。

  2. 我通常重新启动笔记本电脑,然后转到“开始”,然后在运行框中键入msconfig,然后选择“启动”选项卡。我禁用了几乎所有启动项(除了任何Microsoft或Intel进程)。重新启动-不变

  3. 再次使用msconfig,我重新启用了在步骤2中禁用的所有进程。然后转到“服务”选项卡。我单击“状态”标题以将所有服务分类为“正在运行”或“已停止”,并检查了所有正在运行的服务。我先禁用了所有防病毒和防恶意软件(Avast,AdAware和Spybot)。重新启动- 解决了

现在,当我打开一个文件夹时,所有带有元数据的文件几乎都会立即出现。通过淘汰过程,是导致速度下降的AdAware程序。我卸载了它,然后将其替换为Malwarebytes。那不会减慢我的机器的速度。

课程:始终首先尝试“安全模式”以查看问题是否解决,然后使用排除过程来查看导致速度下降的过程或服务。


-1

这是由Windows搜索服务引起的。您可以通过将Windows Search服务设置为Disabled并手动停止该服务(右键单击该服务,然后选择Stop)来禁用该服务。微软将服务放在那里可以加速Windows(是的,无论如何)。

您还可以使服务保持运行状态,仅对选定的文件类型禁用该服务。确定要禁用索引的文件类型后(.AVI,.MPEG,.WMV等):

  1. 打开控制面板
  2. 要选择Windows搜索,请在搜索栏中输入“索引选项”并将其打开。或者,您可以通过将“视图”更改为大图标或小图标,然后打开“索引选项”来选择它。或者,您可以使用“类别视图”进行操作-从“控制面板”主窗口中,选择“系统和安全性”-“操作中心”-“查看性能信息”-“调整索引选项”。
  3. 单击“高级”,然后选择“文件类型”选项卡
  4. 取消选择(删除复选框)您要为其禁用索引的文件类型的扩展名旁边。

希望这可以帮助您加快速度。祝好运!!


1
索引服务无法降低Explorer的速度,但是,它在索引文件时会使磁盘访问变慢。另一方面,如果检测到用户交互,则Indexing Service足够聪明,可以让出资源。
Alexey Ivanov

触摸
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.