mercredi 15 septembre 2010

Gestion et astuces de la mémoire



La gourmandise de nos PC en mémoire ne cessant de croître, il est important de bien s’interroger sur la quantité de RAM à disposer, sous XP 1Go était recommandé, 2Go pour une utilisation intensive comme la MAO, et avec l’arrivée de vista,  il faut viser si possible les 2Go directement, car vista demande des besoins élevés en terme de mémoire vive, possédant des fonctionnalités diverses comme Aero ou les services d’indexation des fichiers.

Le Superfetch que nous verrons plus loin, a pour but de pré-charger en mémoire les données et applications les plus utilisées sur votre PC afin d’obtenir une réactivité, et cela ne sera qu’efficace quand disposant d’un espace mémoire disponible, donc avec 2Go c’est tout bon.

Avec les 2Go préconisés et une version 32 bits sur XP, la limite est déjà acquise, mais il est possible de modifier ce seuil en allant faire un tour dans le fichier démarrage et de passer ce seuil à 3Go ( avec XP pro, ajouter l’option /3GB dans le Boot.ini ) voir le dossier sur Optimiser Windows.
Sous Vista, le fichier Boot.ini n'existe pas, c'est le fichier bootmgr ( voir dossier ci-dessous )

Windows Vista bénéficie du nouveau noyau NT6, et, pour rappel le noyau NT5 (Windows 2k/XP) utilise des algorithmes permettant de diviser la mémoire disponible du PC en de petites zones statiques, également appelées pages.

Avec ce noyau et en cas de changement dans nos configurations PC (installation pilote, modification de la base des registres, etc.), il fallait alors redémarrer le PC afin que le noyau NT5 puisse réorganiser les plages mémoire.

Ce qui est intéressant dans le fonctionnement du noyau NT6, c’est que la mémoire vive disponible n’est plus divisée de façon statique, mais dynamiquement. Le premier avantage est que Windows Vista n’est plus limité par la taille fixe des pages, ce qui permet au noyau NT6 de reconfigurer en temps réel ces pages en fonction des besoins.
Cela permet de ne pas se retrouver avec de l’espace mémoire inutilisé et de rencontrer le phénomène de fragmentation.

Cela permet également d’éviter les redémarrages intempestifs, mais également d’écraser « accidentellement » les données contenues dans une ou plusieurs pages

Plus efficace donc, Windows Vista analyse en permanence la mémoire. Ce qui permet de détecter toute erreur d’écriture/lecture dans le but de placer le ou les secteurs mémoire défectueux en quarantaine. Windows Vista vous avertit alors du problème et vous propose d’exécuter l’utilitaire de diagnostic mémoire Windows au prochain redémarrage.
Les performances du meilleur disque dur, étant nettement moins véloce que la mémoire, la gestion de la mémoire sous vista prend son intérêt lorsque la mémoire virtuelle s’appuyant sur les disques durs, permet l’exécution de nombreux programmes en simultanés, ce que bien sur la mémoire vive ne peut effectuer.

Avec Windows 2k/XP, la mémoire virtuelle est paginée et Windows Vista s’appuyant sur le même modèle dynamique utilisé par la mémoire vive,  permet, d’adapter la taille des pages en fonction des besoins réels, de diminuer les redémarrages nécessaires et de réduire fortement le phénomène de fragmentation. Ce qui implique de meilleurs accès en lecture/écriture également. 


Bootloader sous Vista

Contrairement au fichier Boot.ini, le fichier "bootmgr" est exécutable seulement sous " en tant qu'administrateur " ce qui évitera d'être modifié facilement, il n'est pas non plus possible de lire directement le contenu du fichier bootmgr, fort heureusement, Microsoft a  pensé à un outil permettant de le modifier.
Cet outil se nomme bcdedit(.exe) et se trouve  dans le répertoire \ Windows \ System32 du répertoire Windows Vista partition.

Ouvrez l'invite de commande ( cmd ) en tant qu'administrateur puis tapez bcdedit :

Avant de bidouiller nous allons faire une sauvegarde de ce fichier, créez un dossier à la racine de c:/ (ou ailleurs).

Toujours sous l' invite de commande, tapez :

mkdir c:\backup


Exportez le fichier dans ce dossier de backup

bcdedit /export "C:\Backup"

Il est tout à fait possible de réimporter avec le paramètre import

bcdedit /import "C:\Backup"

Et pour plus de détails sur la commande et l'option de renseignements à l'invite de commande, tapez bcdedit.exe /? commande dans l'invite.

 
 La gestion des 4 Go sous Vista SP2
 
Tout comme sous XP en version 32 bits, il est possible de n'allouer qu'1 Go pour le noyau et 3 Go pour l'application, ce qui peut dans certain cas être intéressant.
Commercialement parlant, Vista peut reconnaitre les 4 Go de ram installées, ce qui ne sous entends pas qu'il puisse l'utiliser pleinement car c'est sans compter le besoin de mémoire et la gestion des périphériques qui requièrent un accès mappé en mémoire, ceci s'effectuant de deux façons avec le PMIO ou MMIO, pour donner un exemple prenons le cas de la carte graphique qui utilise la MMIO (memory Mapped I/O) qui est une partie de l'espace d'adressage du processeur utilisée pour accéder à un périphérique ou bien la mise en cache du BIOS, de l'APIC, la gestion du DMI, l’espace de configuration du FSB, la configuration des cartes PCI-Express et la carte graphique et la gestion du Northbridge, donc en finalité la réduction en mémoire système disponible dépend des périphériques qui sont installés dans l'ordinateur, toujours est-il qu'avec une version 32 bits nous sommes plus ou moins limité et la mémoire disponible totale tourne aux alentours des 3,12 Go.

Comme nous l'avons vu ci-dessus le bootlaoder sous vista est modifiable via bcdedit en invite de commande et en tant qu'administrateur, et pour indiquer les 3 Go réservés à l'utilisateur, tapez :

BCDEDIT /Set IncreaseUserVa 3072 ( 2048 par défaut )

*Pour supprimer l'entrée et en cas de souci de démarrage du système, redémarrer en mode sans échec et tapez :

bcdedit /deletevalue IncreaseUserVa

Rebooter

*Attention, tout comme sous XP Pro, rien n'est garantie, ni sur la stabilité du système ni sur une bonne utilisation de cette astuce, car il faut cependant que vos programmes puissent les exécuter, en somme pour en profiter il faut que votre application ( séquenceur audio, synthé virtuel, etc... ) soit compatible LAA ( Large Address Aware )

Et pour pouvoir disposer de  plus de 4Go, on passe sur les versions 64 Bits d'XP, Vista, seven ou bien Linux.
 
 
Le commutateur /PAE sous Vista
 
Comme évoqué dans le dossier de la mémoire vive, le commutateur PAE permet d'étendre l'espace d'adressage de 32 Bits à 36 Bits,  n'imposant pas une réécriture obligatoire des applications, ce qui n'est pas le cas avec la technologie Large Address Aware.
 
Le LAA  permet aux applications 32 Bits de pouvoir avoir un espace de mémoire adressable de 3 Go au lieu de 2 en mode normal, ceci est valable si  la commande BCDEDIT /Set IncreaseUserVa 3072 via bcedit sous Vista est activée, il est ainsi possible avec cette astuce de contourner la limitation de 2 Go. 
Le PAE, lui, permet d'aller plus loin en proposant d'étendre l'espace d'adressage à 4 Go par application, mais cela présente des inconvénients, en effet avec un système d'exploitation 64 Bits, les pilotes sont compatibles PAE signifiant une meilleure stabilité du système, sous un OS 32 Bits, ce n'est pas le cas et il est possible d'avoir des soucis d'écran bleu, USB, etc...de plus et avec un système d'exploitation 32 Bits, la limitation de 4 Go ne pourra pas être dépassée.
 
Pour Info :
 
Enable PAE
 
tapez sur la touche Windows + R puis CMD ( en tant qu'administrateur ) puis :
 
BCEDIT/SET PAE ForceEnable
 
Rebooter
 
Pour désactiver le PAE, en cas d'instabilité ou de plantage:
 
BCEDIT/SET PAE DisableEnable
 
Rebooter




Paramètre d'amorçage et le DEP

DEP est une fonctionnalité  visant à protéger l'ordinateur contre l'introduction de code malveillant dans des zones-mémoire de l'ordinateur réservées au code non exécutable, il ce peut cependant, que certains programmes ne fonctionnent pas correctement.

Pour supprimer cette fonctionnalité tapez dans CMD en tant qu'administrateur
bcdedit.exe /set {current} nx AlwaysOff

Rebooter

Pour réactiver la fonction par défaut :

bcdedit.exe /set {current} nx AlwaysOn

Rebooter

 
Optimisation de la mémoire et les DLL

Tout comme XP, les DLL  utilisés par les logiciels sont conservés et ce même après la fermeture du système, dans un choix de libérer davantage de la mémoire vive et décharger systématiquement les dll après usage, faite comme ceci :

Regedit
Allez dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
Doucle-cliquez sur AlwaysUnloadDLL, fixez à 1
Rebooter 

 
Pour les configurations de 2 à 4 Go de mémoire vive

Si votre ordinateur dispose de plus de 2 Go, vous pouvez ignorer le fichier d'échange de la mémoire virtuelle, ceci permettant d'utiliser exclusivement de la mémoire vive et évitera aux données d'être échangée entre la mémoire vive et le fichier d'échange

Regedit
Allez dans :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Cliquez sur la valeur DisablePagingExecutive et attribuez la d'un 1
 
 
Vider le fichier d'échange à chaque arrêt
Pour limiter les effets de la fragmentation du fichier d'échange il est possible d'obliger Windows de vider le fichier lors de l'extinction de la machine, ceci augmentera néanmoins le temps de fermeture de la session.
 
Regedit
Allez dans :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\ Memory Management
Cliquez sur la valeur ClearPageFileAtShutdown et attribuez la d'un 1 En cas de souci, mettez un beau 0 pointé à la place du 1
 
 
Augmenter la mémoire tampon ( Vista et Windows 7 )
 
Avec au minimum 1 Go de mémoire vive, il est possible de forcer la vitesse de la lecture et écriture des fichiers rendant ainsi un échange plus rapide avec le disque dur
 
Tapez
Regedit
Allez dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement\
 
Cliquez ou créer sur la valeur Dword IoPageLockLimit, saisissez les valeurs Décimale correspondant à votre quantité de mémoire vive
 
Avec 1 Go :   983040
        2 Go : 1966080
        4 Go : 3932160
 
 
SuperFetch

 
Avec le noyau NT5 ( Windows 2k/XP ) le Prefetching  est une cette technique permettant d’analyser les processus non système afin de déterminer quels sont les programmes les plus couramment utilisés et dans le but d’optimiser le temps d’ouverture et d’accès aux différentes applications vista intègre une technologie avec un algorithme évolué, dénommé SuperFetch.
Et comme spécifié plus haut, le Superfetch a pour but de pré-charger en mémoire les données et applications les plus utilisées.

Tout comme XP, la procédure pour régler et optimiser le Prefetcher est la suivante : 

Réglage et Optimisation du Prefetcher ( XP, Vista, Seven )

Le répertoire Prefetch ( situé dans le répertoire Windows ) permet de stocker les accès aux fichiers les plus utilisés afin de les charger plus rapidement. Il est possible en affinant le réglage de privilégier la vitesse du boot, du chargement des applications, ou bien les deux. L'optimisation permettra de défragmenter le répertoire Prefetch.

Il est à noter qu'en activant ce service, la mémoire vive est envahie partiellement par ces fichiers, de plus le système est régulièrement sollicité pour récolter les informations nécessaires à la mise à jour du préfetcher, donc pour libérer davantage les ressources du système et de la mémoire vive, vous pouvez désactiver le Prefetcher, ainsi que le Superfetch ( clef et Services ! )


Tapez
Regedit
Allez dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters
Indiquez la valeur désirée pour la clef DWORD EnablePrefetcher
Rebooter

Voici les différentes valeurs possibles pour la clé EnablePrefetcher :
- 0 : prefetcher désactivé
- 1 : prefetcher activé pour les applications
- 2 : prefetcher activé pour le boot
- 3 : prefetcher activé pour le boot et les applications ( valeur par défaut )

Il n'y a pas de règles, le réglage est en fonction de votre configuration et de vos choix.

Pour défragmenter le répertoire vous allez lancer défrag en ligne de commande :
Dans Exécuter tapez cmd
puis defrag c: -b et validez ( avec Windows installé sur C )

A noter que sur certaine config l'invite de commande ne reconnaît pas le [b]

N’oublions pas le Superfetch permettant au prefetch d’être plus performant au détriment d’une consommation plus accrue en mémoire, il vous faut donc faire un choix.

à la clé Dword EnableSuperfetch :
  - 0 de la valeur désactivera la fonction
  - 1  la valeur  optimisera le temps de démarrage de vos applications les plus courantes
 - 2/3 optimiseront respectivement le temps de démarrage du système, ou le système ainsi que vos applications les plus couramment utilisées

Si vous préférez libérer de la mémoire vive et les ressources systèmes, il faudra désactiver le superfetch :
 
Tapez services.msc dans Exécuter
Rechercher  la ligne Superfetch,  double-cliquez,  repérez la fenêtre "type de démarrage" et choisissez "Désactivé", appliquer le changement
 
Zikmao.net Juin 2008 





Le Dossier à suivre :

- Vista 64 Bits




Faire un lien :

Réagir sur le forum


Zikmao le forum




Tous droits réservés - Copyright © 2007-2012 Zikmao.net


0 Comments:

Enregistrer un commentaire



 

www.zikmao.net Copyright © 2010 LKart Theme is Designed by Lasantha

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License
Plan du site - mentions légales - Partenaires : - les oreilles.com - PlanèteParis - Stock2Musique - Rockenfolie


2007-2021 Zikmao.net

Zikmao.net s'est engagé à respecter la confidentialité des données personnelles régies par la loi 78-17 du 6 janvier 1978. Déclaration C.N.I.L. n° 1390775