Windows > Windows Vista > Perfectionnement > Prefetch et Superfetch

Windows : Prefetch et Superfetch

 

Vista

 

 

Gestion de la mémoire vive avec SuperFetch et ReadyBoost :

SuperFetch est une technologie utilisée dans Windows Vista, Windows 7 et Windows 8.
Elle consiste à charger en mémoire au démarrage de l'ordinateur les programmes les plus utilisés. Cela permet de les lancer plus rapidement.

ReadyBoost permet d'utiliser une clé USB (compatible ReadyBoost) comme cache pour augmenter la taille de la mémoire vive.

Voir aussi ma page : ReadyBoost, clés USB U3

 

 

Prefetch et Superfetch avec un lecteur SSD :

Si on utilise un lecteur SSD, les fonctionnalités Prefetch et Superfetch doivent être désactivées :

- Cela est fait automatiquement sur Windows 7
- Il faut le faire manuellement sous Windows Vista
- Cela ne se fait plus sur la denière mise à jour Windows 8.1
Voir : Answers.Microsoft.com - SSD parameters are set incorrectly by 8.1 update

 

Voir la page Microsoft : Windows 7 & SSD: defragmentation, SuperFetch, prefetch
http://support.microsoft.com/kb/2727880
"... SuperFetch and prefetch are storage management technologies in Windows that provide a fast-track access to data on traditional, slower hard drives. On SSD drives these really clever services only provide for unnecessary write operations. Typically, Windows 7 automatically disables these services for your SSD disk. Otherwise disable it manually...

Evidemment, ces fonctionnalités ne concernent que le disque système (démarrage). Qu'importe si on utilise un disque dur classique pour les données, il n'est pas concerné par le fonctionnement de Windows.

 

 

Prefetch :

Le prefetching est apparu sous Windows XP
Il organise les fichiers sur le disque dur afin de lancer les applications plus rapidement.

Des fichiers .pf sont créés dans le dossier : C:\WINDOWS\Prefetch

 

Exemple, sous Windows 7 lorsque le prefetching est désactivé (ici, parce qu'on utilise un lecteur SSD)

Il n'y a a pas de fichiers .pf

Windows 7 - Dossier Prefetch - Prefetching désactivé

 

 

Vider le dossier Prefetch :

On peut, sans risque, effacer le contenu du dossier Prefetch, il sera reconstruit.

D'aucuns disent qu'il ne faut pas supprimer le fichier layout.ini :
Voir :
answers.microsoft.com - le fichier ou le répartoire WINDOWS\Prefetch\explorer.exe-2D97EBE6.pf est endommagé et illisible. Exécutez l'utilitaire CHKDSK
"Si un fichier ".pf" dans C:\WINDOWS\Prefetch vous crée un problème, vous pouvez le supprimer sans problème. C'est d'ailleurs le cas de tous les fichiers ".pf" de ce dossier Prefetch qui se reconstituront peu à peu au fur à mesure des utilisations de programmes.
Par contre, il est conseillé de garder "Layout.ini"

 

Si la reconstruction tarde à se faire :

- vérifier d'abord que le service Superfetch est activé
- verifier que Prefetch et Superfetch sont activés dans la Base de registre

- menu Démarrer, Exécuter... (ou taper : Windows + R)
Dans la fenêtre Exécuter...
- taper (ou copier-coller) :
rundll32.exe advapi32.dll,ProcessIdleTasks

 

 

Désactiver le Prefetch :

Le Prefetch occasionne des accès disque lors de sa construction.
Ensuite, il permet d'accélérer l'accès aux programmes les plus utilisés.

Il n'est pas conseillé de le désactiver. Sauf lorsqu'on utilise un lecteur SSD

PS :
Windows 7 désactive automatiquement le Prefetch lorsqu'on installe un lecteur SSD
Sur Windows Vista, il faudra désactiver manuellement le Prefetch lorsqu'on utilise un lecteur SSD

 

- cliquer sur Démarrer,
- taper dans la case Recherche :
regedit
- appuyer sur Entrée

Dans la Base de Registre :

- allez dans :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

0 = Désactiver Prefetch / Désactiver SuperFetch
1 = Prefetch actif sur les applications / SuperFetch actif sur les applications
2 = Prefetch actif sur le démarrage / SuperFetch actif sur le démarrage
3 = Prefetch actif sur tout / SuperFetch actif sur tout.

 

- cliquer avec le bouton droit sur EnablePrefetcher,
- sélectionner "Modifier",
- taper "0" dans "Données de la valeur",
- cliquer sur OK

- faire de même pour EnableSuperfetch

Prefetch sur Windows Vista

 

 

SuperFetch :

Le SuperFetch consiste à placer en mémoire vive (cache) des fichiers (.dll, programmes, etc.) fréquemment utilisés, afin que le chargement des programmes soit plus rapide.

 

Le Superfetch et la mémoire vive :

Dans le Gestionnaire des tâches, onglet Performance :
- on constate que la mémoire libre est proche de 0, alors que le cache contient la mémoire disponible,
- si un programme réclame de la mémoire, le cache est vidé au profit de la mémoire.

Sur un ordinateur Windows Vista, avec 2 Go de mémoire vive :

Superfetch activé :

- remarquer la mémoire libre : 12 Mo

Vista - Superfetch activé

 

Superfetch désactivé :

- remarquer la mémoire libre : 549 Mo

Vista - Superfetch désactivé

 

Liens :

Voir :

DailyMotion.com - Windows Vista - Superfetch
http://www.dailymotion.com/video/x3bweq_windows-vista-superfetch_tech

La gestion mémoire sous Windows Vista : Le SuperFetch
http://www.generation-nt.com/readyboost-readydrive-memoire-virtuelle-vista-gestion-memoire-article-25047-3.html

 

 

Désactiver le Superfetch :

On peut désactiver cette fonctionnalité dans deux cas :
- si on dispose de peu de mémoire vive,
- si on utilise un lecteur SSD
Dans tous les autres cas, il est préférable de laisser cette fonction activée

 

 

Désactiver dans Services :

C'est la solution la plus simple (recommandée)

- menu Démarrer, Exécuter... (touche Windows + R)
- taper :
services.msc

Dans Services :
- cliquer avec le bouton droit sur Superfetch, sélectionner Propriétés

Vista - Services - Désactiver Superfetch

- sélectionner "Désactiver" à la place de "Automatique"
- cliquer sur "Arrêter",
- cliquer sur "OK"

Vista - Services - Désactiver Superfetch

 

 

Désactiver dans la Base de registre :

Il est inutile de désactiver le Superfetch dans la Base de registre, puisqu'on peut le faire facilement en désactivant le service (voir ci-dessus)

Uniquement pour information.

- aller dans :
HLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Par défaut, la valeur EnableSuperfetch est à 3
Il faut la mettre à 0 pour la désactiver

BdR : Vista - Superfetch

 

Les valeurs :

0 = Désactiver Prefetch / Désactiver SuperFetch
1 = Prefetch actif sur les applications / SuperFetch actif sur les applications
2 = Prefetch actif sur le démarrage / SuperFetch actif sur le démarrage
3 = Prefetch actif sur tout / SuperFetch actif sur tout.

Voir les explications sur la page :

Ajustez les paramètres de SuperFetch
http://www.01net.com/contenu/2562/ta_fiches/ajustez-les-parametres-de-superfetch-353-1

 

Voir aussi ma page : Problème d'activité intempestive du disque dur

 

 

ReadyBoost :

ReadyBoost permet d'utiliser une clé USB (compatible ReadyBoost) ou une carte mémoire SD comme cache pour augmenter la taille de la mémoire vive.

 

C'est Superfetch qui détermine les données à mettre en cache sur la clé USB.

Apparu avec Windows Vista, cette technologie est surtout efficace dans les cas suivants :
- peu de mémoire vive (RAM)
- un disque dur lent,
- un processeur lent

Elle peut être utile lorsqu'on ouvre beaucoup de programmes.

Si on utilise un lecteur SSD sous Windows 7, cette fonction est inutilisable car ReadyBoost, Superfetch et Prefetch sont désactivés.

 

 

A l'insertion de la clé, il est proposé de l'utiliser : "Accélérer mon système avec Windows ReadyBoost "

ReadyBoost

Si on retire la clé, ReadyBoost est désactivé sans qu'il y ait perte de données.

 

21/03/2007 : EreNumerique.fr - Windows Vista : la fonction ReadyBoost

ReadyBost sur Wikipedia :
http://fr.wikipedia.org/wiki/Readyboost

02/06/2006 : blogs.msdn.com - ReadyBoost Q&A (anglais)

Liste de clés USB compatibles ReadyBoost (anglais) :
http://www.grantgibson.co.uk/misc/readyboost/