Windows
Vista uses the same boot-time prefetching as Windows XP did if the
system has less than 512MB of memory, but if the system has 700MB or
more of RAM, it uses an in-RAM cache to optimize the boot process. The
size of the cache depends on the total RAM available, but is large
enough to create a reasonable cache and yet allow the system the memory
it needs to boot smoothly.
After every boot, the ReadyBoost
service (the same service that implements the ReadyBoost feature just
described) uses idle CPU time to calculate a boot-time caching plan for
the next boot. It analyzes file trace information from the five previous
boots and identifies which files were accessed and where they are
located on disk. It stores the processed traces in
%SystemRoot%\Prefetch\Readyboot as .fx files and saves the caching plan under
HKLM\System\CurrentControlSet\Services\Ecache\Parameters in REG_BINARY values named for internal disk volumes they refer to.
The
cache is implemented by the same device driver that implements
ReadyBoost caching (Ecache.sys), but the cache's population is guided by
the ReadyBoost service as the system boots. While the boot cache is
compressed like the ReadyBoost cache, another difference between
ReadyBoost and ReadyBoot cache management is that while in ReadyBoot
mode, other than the ReadyBoost service's updates, the cache doesn't
change to reflect data that's read or written during the boot. The
ReadyBoost service deletes the cache 90 seconds after the start of the
boot, or if other memory demands warrant it, and records the cache's
statistics in
HKLM\System\CurrentControlSet\Services\Ecache\Parameters\ReadyBootStats,
as shown in Figure 2. Microsoft performance tests show that ReadyBoot
provides performance improvements of about 20 percent over the legacy
Windows XP prefetcher.