<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>寂静的深海 &#187; Task Scheduler</title>
	<atom:link href="http://www.deepseath.com/?feed=rss2&#038;tag=task-scheduler" rel="self" type="application/rss+xml" />
	<link>http://www.deepseath.com</link>
	<description></description>
	<lastBuildDate>Mon, 29 Jan 2024 09:55:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Prefetch目录的作用</title>
		<link>http://www.deepseath.com/?p=132</link>
		<comments>http://www.deepseath.com/?p=132#comments</comments>
		<pubDate>Thu, 13 Mar 2008 15:28:42 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[日积月累]]></category>
		<category><![CDATA[layout.ini]]></category>
		<category><![CDATA[Task Scheduler]]></category>
		<category><![CDATA[WinXP]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[磁盘整理]]></category>
		<category><![CDATA[计划任务]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=132</guid>
		<description><![CDATA[　　想起来要进行一下磁盘整理了，最近硬盘又是频繁狂转，自己实在想不出它闹什么脾气-_-!! 　　所以只能抱着做下磁盘整理的态度乱医了，想看看layout.ini里面都有什么文件（因为知道磁盘整理是通过此文件进行判断优化的），于是去C:\Windows\prefetch查找，汗，突然想起来前一阵迷糊之中把这个目录内文件全部删除了。 　　想不到什么去恢复，难道让系统恢复预读？但是试过貌似不管用，于是搜索了一下，找到如下内容： 　　下面的内容是在网上搜索的。经过实践我发现要恢复layout.ini，需要做几个步骤： 确认计划任务服务是否开启（控制面板-&#62;管理工具-&#62;服务，找到“Task Scheduler”服务，设置启动类型为“自动”。{如果发现“控制面板”中没有“管理工具”，请在左侧点击“切换到经典视图”}） 进行注册表编辑：开始-&#62;运行，输入：“regedit”，确定。找到目录：HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PrefetchParameters，将EnablePrefeteher子键的值设置为3。 恢复loyout.ini文件，开始-&#62;运行，输入“rundll32.exe advapi32.dll,ProcessIdleTasks”，点击确定。 重新启动计算机。 　　prefetch，预存取，这在vista用户可能知道的多些，其实xp下就有这一技术了，只是官方少有这方面介绍，更别提技术文档了。　　这是xp一个隐藏的特性，用处是在xp登录进度条出现时，就把c:\windows\prefetch目录下的*.pf文件信息预先装载到内存中，以便于提高系统性能。这些*.pf文件是系统和应用程序启动时留下的预存取文件，描述了系统和应用程序每次启动时装载模块的信息和顺序，并且其命名方式中包含一个描述其完整路径的十六进制值。 　　另外，prefetch目录中还有一个重要文件，就是layout.ini这个磁盘布局初始化文件，它记录了所有预存取程序及文件的加载信息和顺序（按优先级排列），这也为这些程序文件的磁盘分配提供了最优化方案的依据。 　　说到这，不得不提一下“局部碎片整理”，按照官方所说，xp每隔3天就会自动进行一次局部碎片整理，我发现这个整理动作是分步实施的，而且是在系统空闲时才会运行，这多亏了刚装上的SSM截获了defrag的这个动作信息，连命令行参数都一并截获，这个重点留待稍后再说。（其实系统在启动时也可以进行局部碎片整理，使得启动时需要的文件能够被整理到相邻位置，这个功能可以在注册表中开启，HKLM\SOFTWARE\Dfrg\BootOptimizeFunetion下enable键由默认的N改为Y即可）用Filemon跟踪发现，系统进行局部碎片整理时，先读取layout.ini文件，然后调用defrag针对layout.ini中涉及的文件进行整理，然后把转移信息再写入到layout.ini中，这个自动整理不同于server2003系统的自动碎片整理功能（Auto Defragmenter）。 　　至于是否开启预存取，有不少争论，但是我坚决认为应该开启，否则系统速度会变得更慢。HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters目录下，EnablePrefeteher子键的值决定以何种方式开启prefetch，0取消，1只预存取应用程序，2只预存取windows系统文件，3同时存取系统和应用程序文件，xp默认情况下是3。以上这些prefetch相关功能依赖于task schedule计划任务这项服务。 　　现在该说那个重点了，系统自动调用的defrag的参数是什么？是-p -s和-b。-p后面跟着一个常量，例如5E4；-s后也跟一个常量，比如000018A4；-b后跟着盘符C：，那么这个命令行的例子就是：defrag.exe -p 5E4 -s 000018A4 -b C: 了。-b这个参数网上一直有传言，说是defrag的隐藏参数，但是官方不给出澄清，我也不知道是否真的存在，这回算是证实了。-b C:就是对预存取的文件进行局部整理，并且每次仅针对一个pf文件相关程序文件进行整理，-p和-s应该就是用来选择哪一个pf的，但具体那两个常量和被选pf文件有什么联系，还有待进一步分析。平时如果想对系统和应用程序文件进行一次优化碎片整理，可以在命令行中敲入defrag.exe C: -b，这样会对所有prefetch文件进行整理，完成后你会觉得系统的速度有一定提升。 　　经验之谈，如果不小心删除了prefetch目录下的文件，尤其是layout.ini文件，如何重建？敲入rundll32.exe advapi32.dll,ProcessIdleTasks命令，然后重启三次系统，就可以重建layout.ini文件，为什么是三次，我也不知道，大概和每隔三天整理一次有关系吧。]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=132</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
