Accueil

Infos-news

infos-web

Infos-logiciels

Multimedia

Papier peint

Utilitaires

Liens

Livredor

Courrier

Gestion mémoire et swap sous Win9x/ME (Réagir sur le sujet)

Comme beaucoup de gens ont encore Win9x/ME, la gestion mémoire reste d'actualité, pour un certain temps encore. Les informations que je vous donne proviennent de ma propre expérience mais aussi de sites et de forums français et anglophones, je donne chaque fois la source afin que vous puissiez compléter vos connaissances.

Pour que ce sujet soit accessible à tous, je vais essayer d'être le moins technique possible mais à certains moments, je n'aurai pas d'autre choix que de l'être. Lorsque je parlerai de mémoire virtuelle, j'abrégerai en MV. J'emploie aussi le terme de swapfile ou fichier d'échange pour désigner le fichier que Windows utilise pour la MV.

La première chose à faire est de se poser un certain nombre de questions. En effet, je n'ai pas de solution miracle qui fonctionnerait pour tout le monde. C'est normal puisque chacun a un usage bien spécifique de son PC et qu'il n'y a pas deux situations identiques. De plus, si vous utilisez aujourd'hui votre PC d'une certaine manière (je veux dire les logiciels que vous utilisez), cela peut changer avec le temps. Vous pourriez découvrir un logiciel qui vous plaît mais qui a pour particularité d'être gourmand en mémoire et/ou en ressources mémoire. J'explique plus loin la confusion entretenue par MS entre mémoire RAM et ressources mémoire.
Ce nouveau logiciel va donc avoir un impact sur le fonctionnement de Windows et il faudra sans doute revoir certains paramètres. Quelle conclusion tirer de ce que je viens de dire ? C'est que personne ne peut donner de solution idéale, moi pas plus qu'un autre. Je peux juste vous donner des pistes et ce qu'il faut surveiller pour comprendre (un peu) le fonctionnement de la mémoire.
Les questions à se poser sont les suivantes :

- Quelle est la quantité de mémoire RAM dans mon PC ?
- Quel est l'usage habituel que je fais de mon PC (quels logiciels j'utilise régulièrement) ?
- Est-ce que j'ai des messages d'erreur de ce genre "ressources insuffisantes", "mémoire trop basse" ?

D'autres questions que je lis souvent :

- Dois-je rajouter de la RAM pour que mon PC soit plus rapide ?
- Mon fichier d'échange est sans doute fragmenté, est-ce que ça diminue les performances ?
- C'est quoi la mémoire virtuelle, ça sert à quoi ?

Il faut également casser quelques mythes entretenus et que je lis quasi chaque semaine ici, sur d'autres forums et même MS se plante royalement avec les valeurs par défaut pour la MV sous XP. A ce sujet, je vais poster un de ces jours un article de la même veine que celui-ci mais uniquement pour XP.

FAUX

Win9x/ME ne peuvent gérer plus de 128 MB de RAM

C'est très bien expliqué par JC Bellamy, il n'y a rien à rajouter.

http://www.bellamyjc.net/fr/windows9x.html#maxRAM

Le fichier swap doit être de taille fixe et égal à deux fois et demie (ou un autre multiple) la quantité de RAM

C'était valable pour les PC avec 8 à 16 MB de RAM mais aujourd'hui, c'est une ineptie puisque le principe même de la MV est de pallier à un manque de RAM. Avec ce principe, quelqu'un ayant 1 GB de RAM devrait créer un swapfile de 2 GB, c'est totalement absurde.

VRAI

Il y a une limite à la quantité de RAM que Win9x/ME peuvent gérer

Disons qu'en théorie, la limite est plutôt celle de la carte-mère. Si vous avez 3 slots qui acceptent chacun 256 MB maximum, cela donne un maximum de 768 MB.

En pratique, Win9x n'a pas été conçu pour gérer de grosses quantités de RAM (plus de 512 MB). Cela veut dire qu'on peut utiliser jusqu'à 1 GB de RAM mais il faut prendre certaines précautions pour éviter des messages du genre "mémoire insuffisante". C'est un des paradoxes de Windows, au plus on rajoute de la RAM, au plus on a des messages indiquant qu'il manque de mémoire. Voir ci-dessous les valeurs à adapter pour régler ces problèmes.
Les versions récentes de Windows (2K/XP) gèrent beaucoup mieux la mémoire et on n'a plus de message "ressources insuffisantes" mais par contre, on a plus de problème avec la MV et ceci parce que les valeurs par défaut prévues par MS sont totalement inadéquates. C'est normal puisqu'ils ne tiennent compte que de la quantité de RAM du PC mais absolument pas de l'usage.

Ressources système et mémoire RAM, ce n'est pas la même chose

J'ai posté à ce sujet ici : http://213.246.36.243/archives/72249-1.htm

En deux mots, disons que les ressources (telles que MS les voit) sont des zones de la RAM de taille fixe, absolument pas dépendantes de la quantité totale de RAM. Donc, un message signalant des ressources système trop faibles indique seulement que ces zones de taille fixe sont presque pleines. Rajouter une barrette de RAM n'améliorerait pas du tout ce symptôme. Il faut essayer de mettre le doigt sur le programme consommateur de ressources et l'arrêter mais certains ne libèrent pas les ressources qu'ils ont allouées quand on les arrête. Ces consommateurs sont malheureusement parfois l'antivirus mais aussi des logiciels comme KaZaA. Redémarrer Windows arrange temporairement le problème la plupart du temps. Solution définitive : passer à XP/2K ou Linux.
En effet, les OS plus récents (XP/2K) ne connaissent pas ce problème de ressources, MS a corrigé le tir en rendant ces paramètres dynamiques et non figés.

----------

C'est quoi la MV, ça sert à quoi ?

LA MV existe depuis très longtemps, bien avant que Windows ne soit créé. A l'époque où la RAM coûtait horriblement cher, on a trouvé un moyen simple et meilleur marché de pallier à une petite quantité de RAM, le disque dur. La MV est donc une espèce de prolongement de la RAM, beaucoup moins rapide évidemment. Sans MV, vous ne pourriez pas lancer des programmes qui occuperaient plus de place que la RAM disponible. Imaginons un PC avec 64 MB de RAM. Une fois que Windows a démarré, même sans aucune autre application, il y a déjà 30 à 40 MB d'occupé. Si vous lancez Word, ce programme se place en mémoire et il ne reste plus rien de vos 64 MB. Windows transfère alors une partie du contenu de la RAM vers le disque, dans un fichier qui est la fameuse MV. Au fur et à mesure que vous lancerez d'autres applications tout en n'arrêtant pas les 1ères, Windows va faire des transferts permanents entre la RAM et la MV car un programme DOIT être en RAM pour être exécuté, c'est impératif et ce transfert est pénalisant pour les performances. Si vous avez beaucoup plus de RAM (disons 128 ou 256 MB), Windows ne doit plus transférer les programmes vers la MV mais il réserve tout de même de la place disque pour le fichier d'échange, ce qui induit en erreur pas mal de gens, je vais y revenir.

Sans rentrer dans les détails techniques sur le fonctionnement de la MV sous Windows (je ne les connais d'ailleurs pas en profondeur), on pourrait schématiser en faisant une analogie avec une réservation de tables au restaurant. Imaginons que vous téléphonez au restaurant et vous demandez à réserver 3 tables mais en réalité, vous n'y allez pas car vous n'avez pas faim. C'est ce que font les programmes, ils allouent de la place pour leur usage et Windows réserve des emplacements dans la MV plutôt que dans la RAM, de manière à anticiper les besoins. Quand le programme s'arrête, la réservation devient inutile et le fichier d'échange diminue en taille, après un certain nombre de minutes. Il y a donc un jeu permanent d'agrandissement et de réduction du swap, lorsqu'on a choisi l'option "laisser Windows gérer la MV" qui est par défaut. Malgré les apparences, un fichier d'échange faisant 100 MB n'est pas une preuve qu'il est utilisé, on va le voir maintenant.

Comment savoir si le fichier d'échange est utilisé ?

Certains programmes le permettent (Norton, TaskInfo, CacheMan, etc.) Mais MS fournit un outil très intéressant pour surveiller ce qui se passe en mémoire, c'est le moniteur système (Sysmon). Pour le lancer : démarrer -> Exécuter -> Sysmon puis enter. S'il n'est pas présent, il se trouve sur le CD-ROM Windows et via "Ajout/Suppression de programmes", onglet "installation de Windows", composant "outils système", boutons "détails" et enfin "moniteur système", on peut l'installer.

Une fois lancé, choisir "Ajouter un élément" dans le menu "Edition", puis, choisir "Gestionnaire de mémoire" dans la colonne "Catégorie" et à droite, choisir "Fichier d'échange utilisé" et Taille du Fichier d'échange" ainsi que "mémoire physique non utilisée". Puis, aller dans le menu affichage et choisir "Graphiques numériques", c'est plus parlant. Vous pouvez aussi y choisir "toujours visible" et "masquer la barre de titres". Vous réduisez la fenêtre de manière à ce que seuls les chiffres apparaissent et ça devient une espèce de petit tableau de bord qui vous donne la température de votre mémoire. Ces paramètres sont conservés dans la BdR ce qui fait que quand vous relancerez Sysmon plus tard, il se souviendra des éléments que vous aviez choisis. Vous pouvez mettre alors un raccourci dans le 'Menu démarrage' et votre tableau de bord vous accompagnera en permanence. C'est ce que je fais et sans ça, c'est comme si je roulais en voiture sans voir la vitesse, la température d'eau, le compte-tours.
Il vous reste maintenant à observer les valeurs pendant quelques jours, en particulier l'usage. Il est possible avec Sysmon d'écrire dans un fichier journal, ce sera plus facile pour trouver les valeurs extrêmes. Via le menu "Options" -> "Graphique..." on peut demander un intervalle de mise à jour chaque demi-seconde, seconde, 3-5-10-30 secondes, 1 minute, 10 minutes, une heure.

Voici un exemple de Sysmon sous WinME en comparaison avec CacheMan, un utilitaire de gestion de mémoire. Personnellement, je n'utilise pas ce genre de logiciels mais ils peuvent être utiles pour ne pas avoir à changer manuellement les paramètres. Vous constaterez que Sysmon et CacheMan n'ont pas les mêmes valeurs de Fichier d'échange utilisé, c'est celle de Sysmon dont il faut tenir compte.



Merci à Alain (Gabuzo38) qui m'a autorisé à publier "l'intimité" de son PC.

J'en profite pour dire que des logiciels censés "libérer et/ou défragmenter" la RAM sont un leurre puisque pour leur propre usage, ils prennent de la place en mémoire. Je sais que certains d'entre vous les utilisent, j'attends toujours qu'on me démontre leur efficacité.

Pourquoi choisir taille et usage du fichier d'échange, n'est-ce pas la même chose ?

Non. Beaucoup de gens s'imaginent que leur swapfile (fichier d'échange) est très utilisé par Windows car ils voient sa taille changer sans arrêt, il grandit quand on démarre des applications et diminue quand on les arrête. C'est un raisonnement logique que je comprends parfaitement mais la réalité est tout autre. La seule chose qui prouve qu'un swapfile est utilisé, c'est son usage et non sa taille.

Il est courant d'avoir un swap de 100 MB mais son usage est égal à zéro. Ce qui veut dire que si on voit le fichier swap qui passe de 40 MB à 100 MB mais toujours avec un usage à zéro, Windows n'a rien écrit dedans, il s'est contenté d'allouer de la place, comme une réservation. J'ai déjà vu mon swap passer de 0 MB à 85 MB en une fraction de seconde, comment imaginer que Windows ait écrit 85 MB en si peu de temps ? L'usage était toujours à 0 et Windows a seulement réservé de la place en mettant la FAT à jour. L'argument "performances" mis en avant par les partisans du swapfile de taille fixe s'écroule du coup. Ceux qui continuent à prétendre que c'est mieux n'ont pas pris la peine de tester pendant une période assez longue les valeurs du swapfile (taille ET usage) et confondent taille avec usage.

Le fichier d'échange s'appelle normalement win386.swp dans le répertoire windows mais il est possible de lui donner un autre nom et de le placer ailleurs. Je ne vais pas expliquer ici comment et pourquoi, ça deviendrait trop technique. Disons que si on a un PC en multiboot, on peut alors avoir un seul fichier d'échange commun à XP et 98, par exemple.

Maintenant que vous avez observé les différentes valeurs, il est temps d'en tirer les conclusions.

- Si vous avez un usage presque en permanence égal à zéro, cela signifie que Windows ne swappe pas. En d'autres termes, la quantité de RAM dans votre PC est suffisante actuellement pour votre usage. Vous le voyez également à la valeur "mémoire physique non utilisée" qui ne descend jamais à zéro. Rajouter de la RAM serait donc du gaspillage. Ceci pour répondre à certaines personnes qui rajoutent de la RAM sans avoir fait les constatations ci-dessus et qui s'étonnent que le PC n'est pas plus rapide.
Si vous avez au moins 128 MB de RAM et un usage presque toujours à zéro, je vous conseille l'option ConservativeSwapFileUsage=1
C'est mieux de copier/coller la ligne afin de ne pas se tromper dans l'orthographe.
Elle est à insérer dans le fichier WindowsSystem.ini, sous la rubrique [386Enh]. En cas de problème, il suffit de commenter la ligne en mettant un ; devant. Il faut redémarrer Windows après avoir inséré ou enlevé le paramètre.

Précision : elle n'est d'aucune utilité sous XP/2K qui n'utilisent d'ailleurs pas pour leur fonctionnement de fichier Win.ini ou System.ini. Si vous avez un de ces 2 fichiers sous 2K/XP, cela veut seulement dire qu'une application tierce l'utilise pour y stocker des informations pour son propre usage mais en aucun cas le système d'exploitation ne les exploite. On dira que ces fichiers sont là par compatibilité.

A quoi sert cette option ? Disons qu'elle fait en sorte de n'allouer de la place dans le fichier d'échange que quand la RAM est réellement pleine et non de manière préventive, pour le cas où. En pratique, j'utilise cette option (avec "laisser windows gérer la MV") et mon fichier d'échange reste de longues semaines à sommeiller dans un coin avec une taille de 0 byte ! Autant vous dire que l'emplacement optimal d'un fichier de 0 byte est le cadet de mes soucis.

- Si vous avez un usage plus grand que zéro, ça veut dire que Windows utilise réellement le fichier d'échange, c'est-à-dire qu'il transfère le contenu d'une partie de la RAM vers le disque dur lorsque la RAM est pleine. Si l'usage est de plusieurs dizaines de MB pendant une longue période d'observation, il est temps d'envisager l'achat d'une barrette supplémentaire.

Comment changer le paramétrage de la mémoire virtuelle ?

Pour y accéder touche Win+Pause (ou clic droit sur le poste de travail et cliquer sur Propriétés) -> Onglet "performance" bouton "Mémoire virtuelle".

La solution la plus "sage" et la moins risquée est de "Laisser Windows gérer les paramètres de mémoire virtuelle". C'est l'option par défaut et elle permet de faire face à toutes les situations. Seulement, que vous ayez un usage du swap supérieur à zéro ou non, votre fichier swap bougera régulièrement en taille, ce qui n'est pas un problème en soi, bien sûr.

Une autre solution consiste à désactiver la MV. Ce n'est pas du tout recommandé. En effet, certains programmes ont besoin du fichier swap et comme je l'ai dit, Windows alloue à l'avance de la place disque pour le swap. Donc même si vous avez 1 GB de RAM, n'utilisez pas cette option, il vaut mieux mettre CSU=1 (voir ci-dessus). A quoi sert-elle alors ? Je pense que dans certaines circonstances, on peut temporairement désactiver la MV mais c'est plus pour faire des tests système qu'autre chose.

La dernière solution consiste à spécifier soi-même les valeurs mini et maxi.

Comme valeur maxi, il vaut mieux ne rien changer à celle proposée par Windows, elle correspond en fait à l'espace disponible sur le disque en question.
Comme valeur mini, prenez la plus grande valeur de la taille du fichier d'échange que vous avez constatée via Sysmon. Imaginons que vous obtenez 200 MB comme taille maximale après plusieurs jours. Rajoutez simplement 10 ou 20 %, pour arriver donc à 220 ou 240 MB et c'est cette dernière valeur qui est à mettre en taille mini du swapfile. Ainsi, vous avez une marge pour le cas où vous auriez une situation exceptionnelle nécessitant plus de mémoire virtuelle, le fichier gonflerait temporairement pour revenir à sa taille initiale dès que la RAM est moins sollicitée. Mais dans la plupart des cas, votre fichier de 220 MB serait dans son coin et ne bougerait plus.

En fait, c'est ce dernier point qui prête à confusion pour beaucoup de gens, persuadés qu'il faut absolument mettre une valeur mini égale à la valeur maxi "pour ne pas fragmenter et ne pas ralentir le PC". En réalité, en mettant une valeur mini suffisamment grande, vous avez tous les avantages d'un fichier de taille fixe mais sans les inconvénients.
Quels sont-ils ? Ça dépend, suivant qu'on ait de la chance ou pas. Si vous avez mis une taille maxi trop faible (pour avoir un swap "permanent") et que Windows a temporairement besoin d'allouer de la place, voici les scénarios possibles au moment où cette taille maxi est atteinte.

Soit, on a juste un message "mémoire insuffisante" et le programme qui réclamait de la RAM se plante mais on peut continuer. Soit, on n'a pas de message et c'est Windows qui se plante avec une possibilité de fichiers corrompus et dans le cas le plus grave, plantage total avec impossibilité de réparer le disque et obligation de reformater et réinstaller.

Conclusion, il n'y a AUCUN bénéfice à mettre une taille maximale autre que la place disque disponible, au mieux, vous n'aurez pas de message d'erreur, au pire, voir ci-dessus. Les gens de Norton Utilities préconisent (préconisaient ?) une taille maximale relativement faible, comme quoi les plus "grands" peuvent se tromper.

Pourquoi ai-je un message d'erreur depuis que j'ai rajouté de la RAM ?

Il arrive en effet que des gens constatent des messages du genre "mémoire insuffisante" alors qu'ils ont justement rajouté de la RAM. C'est un comble évidemment. La raison est simple, MS n'avait pas planifié dans les années 90 que la RAM allait brutalement chuter de prix et qu'on allait avoir des PC avec 512 MB ou 1 GB de RAM. Résultat, certains paramètres de la gestion mémoire ont "disjoncté". Je reste vague expressément car ce n'est pas MS qui dévoilera le problème, disons que c'est le Vcache qui est le plus concerné. Je précise tout de suite que si vous avez la quantité de RAM indiquée ci-dessous mais pas de message d'erreur ou de redémarrage intempestif, il n'est pas nécessaire de changer le Vcache. Pour les autres, il y a un certain nombre de solutions passant par des paramètres du fichier System.ini à la rubrique [vcache]

On peut y mettre par exemple maxfilecache=358400
Le chiffre est en KB et convient pour ceux qui ont 512 MB de RAM. Il faut redémarrer le PC pour que Windows en tienne compte.

Pour les PC de plus de 128 MB (lisez minimum 160 MB jusqu'à 512 MB), mettre VCache à 70 % de la valeur totale de votre RAM est recommandé pour éviter une fuite en avant du VCache dans quelques rares situations.

Si vous avez plus de 512 MB de RAM (lisez au moins 640 MB), une valeur maximale de VCache égale à 500000 KB (voire un peu moins) est recommandée. VCache est limité en interne par Windows à 800 MB. Le problème avec les PC ayant beaucoup de RAM, c'est que la taille du VCache peut être tellement grande qu'il consomme toutes les adresses mémoire, il va rester très peu d'adresses libres pour du code et des données qui doivent alors occuper de la place dans la MV.

Pour les systèmes avec plus d'un 1 GB de RAM, il se peut que 98/ME provoquent un reboot continuel du PC, des plantages ou des reboots en série lors d'un upgrade de Win. Pour résoudre ce problème, il faut rajouter une entrée MaxPhysPage=40000 dans la section [386enh] du system.ini. Ce paramètre limite la quantité de RAM disponible que Windows peut accéder à un 1 GB. MS préconise de mettre ce paramètre pour ceux qui ont 1.5 GB de RAM mais la solution est de le mettre déjà pour les systèmes avec un 1 GB.

Voir ici : http://support.microsoft.com/support/kb/articles/Q304/9/43.ASP

MS reconnaît que "WinME/9x n'ont pas été conçu pour gérer plus de 1 GB de Ram. Plus de 1 GB de RAM peut causer l'instabilité du système."

Un article intéressant sur la gestion de mémoire sous 9X/ME (en anglais), c'est là que j'ai trouvé une partie des explications décrites dans ce sujet.

http://aumha.org/a/memmgmt.htm

Une autre page en anglais qui explique très clairement le fonctionnement du swap

http://www.forrestandassociates.co.uk/pcforrest/swapfile.html

Reducing the amount of resizing involved will certainly improve performance, however it is your usage of the swapfile that has the greatest effect on performance. Reducing your usage is the key and there's only two ways to do that: run fewer, larger programs, or add more physical RAM. The amount of RAM you need is a direct reflection of your swapfile usage. Thus if your swapping regularly, you have insufficient RAM.

Si vous ne comprenez pas l'anglais, on pourrait résumer comme ceci :

Réduire la quantité de redimensionnement du swap va améliorer les performances mais c'est l'usage qui a le plus grand effet sur les performances. Réduire l'usage est la clé du problème et il n'y a que 2 manières de le faire : exécuter moins de programmes simultanément ou ajouter de la RAM. La quantité de RAM nécessaire est en rapport direct avec l'usage du swap. Donc, si l'usage est supérieur à zéro régulièrement, vous manquez de RAM.

N'hésitez pas à poser des questions ou à commenter. N'oubliez pas de préciser à chaque fois votre version de Windows, la quantité de RAM et les paramètres actuels de votre VM pour qu'on soit sûr de parler de la même chose. Je rappelle que certaines valeurs sont stockées dans le fichier System.ini aux rubriques [386enh] et [vcache].

-------------------------
Pierre.

  

Comment tester la mémoire RAM ?

Rassurez-vous, je ne vais pas me lancer dans des explications techniques, d'autres sur ce forum connaissent beaucoup mieux le hardware que moi. Je pense en particulier aux différences entre les types de mémoire (SD-RAM, RD-RAM, SIMM, DIMM, RIMM et tout le toutim  )
Néanmoins, il arrive que des barrettes mémoire provoquent des erreurs pendant l'utilisation de Windows mais évidemment, sans un message explicite. Vous n'aurez jamais de message d'erreur "RAM défectueuse".
Il s'agit par exemple de messages au démarrage de Windows disant que le registre est endommagé et qu'il faut le restaurer à une date antérieure. En réalité, c'est rarement le registre qui a un problème mais comme il est intégralement chargé en RAM au démarrage, cela explique le message. Une fois que Windows est chargé, on peut avoir des écrans bleus (BSOD) ou des erreurs kernel32.dll de manière aléatoire.

Il existe différents moyens de tester la RAM sans faire appel à un technicien.

La solution manuelle

- Si vous avez plusieurs barrettes, essayez d'en enlever une et de recommencer à utiliser le PC pour voir si l'erreur se produit. Vous pouvez aussi intervertir 2 barrettes. Attention aux manipulations, les barrettes sont des composants relativement fragiles et il est conseillé de les manipuler délicatement. Evitez de mettre les doigts sur les contacts et ne forcez pas au moment de les remettre, il y a normalement une encoche empêchant de se tromper. Pensez aussi à l'électricité statique. N'oubliez pas que sur certaines cartes-mère, les barrettes vont par paire. En enlever une n'est donc pas suffisant.

- Si vous n'avez qu'une barrette, c'est plus difficile. Essayez de voir si vous ne pouvez pas en avoir une d'un autre PC temporairement. Si ce n'est pas possible, il faut tester la barrette.

La solution par un logiciel externe

Je conseille SimmTester, un freeware qu'on trouve ici :

http://www.simmtester.com/PAGE/products/doc/docmemsignin.asp

Le principe de ce genre de programmes est toujours le même, une disquette est générée avec un programme de test mémoire, il suffit alors de redémarrer le PC avec la disquette dedans et le test démarre.

Ontrack propose aussi une solution un peu plus complète car elle scanne le disque et fait d'autres tests, ça s'appelle DataAdvisor. La seule chose, c'est que la disquette que le programme génère ne fonctionne que 15 jours, une valeur est écrite dans la BdR et quand vous démarrez le PC avec la disquette dedans, le contrôle se fait.

http://www.ontrack.com/freesoftware/DC500.exe 1.9 MB tout de même

Voici d'autres freeware que je n'ai pas testés mais qui devraient être OK

- MemTest86 pour Windows 9x/NT/2000/ME/XP et DOS:

http://www.memtest86.com/

- MEMTEST:

http://www.aha.ru/~alegr/download/memtest_en.htm

- NMI pour DOS:

http://wcarchive.cdrom.com/pub/simtelnet/msdos/memutil/nmi.zip

La solution "bidouillage" pour 9x/ME

Quoique, ce n'est pas tant du bidouillage.
Cette solution était en standard avec le DOS, elle a disparu depuis Win95.
Disons qu'il faut adapter un fichier système le temps du test, ça peut en rebuter certains mais ce n'est rien de bien grave.
Au préalable, sauvez le fichier c:\config.sys sur une disquette ou un autre PC si vous êtes en réseau.

Il s'agit d'utiliser le fichier Himem.sys qui doit se trouver dans le répertoire \Windows.
Voici comment procéder : ouvrir le fichier c:\config.sys avec le bloc-notes. Attention, ce fichier est normalement en lecture seule, il faut donc décocher la case "lecture seule" dans les propriétés du fichier, sans quoi, vous ne pourrez pas sauver la modification.

Vérifier la présence d'une ligne contenant le fichier Himem.sys. S'il n'y en a pas, rajouter la ligne suivante :

DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:ON

Je conseille de faire un copier/coller pour ne pas se tromper dans l'orthographe. Si votre fichier Himem.sys se trouve ailleurs que dans c:\Windows, il faut évidemment adapter le chemin.

Vous pouvez aussi utiliser Msconfig (démarrer -> Exécuter -> Msconfig), il y a un onglet "Config.sys" et grâce au bouton "Nouveau", vous pourrez rajouter la ligne. Cette solution permet d'éviter la manipulation des propriétés du fichier et en plus, ça crée un fichier config.pss qui est une copie de sauvegarde.

Le switch TESTMEM:ON fait des tests de lecture et d'écriture dans la RAM d'une manière plus poussée que le test du BIOS. Le logo Windows risque d'apparaître au-dessus du message "test de la mémoire étendue..." mais en cas d'erreur, vous aurez le temps de voir ceci :

ERREUR : HIMEM.SYS a détecté une zone de mémoire XMS non fiable à l'adresse xxx Pour continuer le démarrage de votre ordinateur, appuyez sur ENTREE

Il est possible que le message n'apparaisse pas au 1er test mais après plusieurs essais, voire plusieurs jours.

Il se pourrait que Windows refuse de démarrer à cause de l'erreur. Dans ce cas, il faut enlever ou commenter la ligne DEVICE= du fichier config.sys. Vous pourrez le faire en démarrant en DOS et en tapant edit c:\config.sys

Pour commenter la ligne, il suffit de mettre REM suivi d'un espace, ce qui donne

REM DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:ON

Pour quitter l'éditer de MS-DOS, appuyer sur Alt+F+Q et répondre Oui pour sauvegarder le fichier.

Vous savez maintenant qu'une zone mémoire pose problème, à vous d'agir en conséquence.

Note pour ceux qui utilisent WinME. Il n'est normalement pas prévu d'accéder au DOS pur et d'utiliser le config.sys mais un patch de 9 KB suffit à donner à WinME la possibilité d'accéder au DOS pur. Il modifie 3 fichiers système.

à télécharger ici : http://www.geocities.com/mfd4life_2000/


-------------------------
Pierre.


Les programmes qui libèrent la RAM, utiles ou pas ?

Si vous avez lu ma remarque ci-dessus, je disais ceci :

J'en profite pour dire que des logiciels censés "libérer et/ou défragmenter" la RAM sont un leurre puisque pour leur propre usage, ils prennent de la place en mémoire. Je sais que certains d'entre vous les utilisent, j'attends toujours qu'on me démontre leur efficacité.

Il se fait que j'ai lu un commentaire sur un autre forum signalant que ces programmes pouvaient être utiles dans certaines circonstances, bien particulières. J'ai donc téléchargé RAMPage pour voir ce que ça donnait. J'ai appris pas mal de choses en lisant la FAQ et le UserGuide sur le site de l'auteur. Je vais traduire une partie de ce qu'il dit et vous verrez que ça rejoint ce que je m'esquinte à expliquer plus haut.

There is a popular misconception that maintaining lots of free RAM improves the performance and reliability of a computer. RAMpage can be used to achieve this goal, but this is, in the author's opinion, a misuse of the program.

Une idée fausse mais très répandue prétend que maintenir une grande quantité de RAM libre améliore les performances et la fiabilité d'un PC. RAMpage peut être utilisé dans ce but mais du point de vue de l'auteur, c'est une mauvaise utilisation du programme.

Under certain circumstances, freeing memory may improve the stability of Windows 95, and possibly also Windows 98 and ME. In theory, RAMpage shouldn't make any difference if you are using Windows NT, 2000 or XP, though I have had some reports that suggest it helps.

Dans certaines circonstances, libérer de la RAM peut améliorer Win95 et peut-être aussi Win98/ME. En théorie, RAMpage ne devrait rien changer si vous utilisez NT/2K/XP mais apparemment, il y a eu des commentaires positifs à ce sujet.

On voit parfois sur ce forum des gens qui proposent de créer un script .vbs contenant une seule ligne et qui libère de la RAM. L'auteur de RAMpage reconnaît modestement ne pas faire autre chose que le script mais avec l'avantage que son programme prend très peu de place en RAM (l'exécutable fait 10 KB !) et que même si on n'a plus rien du tout de libre comme RAM, RAMpage démarrera alors que le script .vbs donnera un message d'erreur.

Voici la ligne en question : FreeMem = Space(24000000)

Le chiffre entre parenthèses représente le nombre d'octets qu'on demande à Windows de réserver, ce qu'il fait immédiatement. Mais comme le script s'arrête juste après, cette quantité de RAM est aussitôt libérée.

What exactly Windows is doing is a closely guarded secret out of Redmond WA. My best educated guess is that Windows does some "garbage collection", (that is it frees memory that has been discarded by processes but not yet added back to the free memory pool), unloads any unnecessary dlls, and moves current applications out to the swap file.

Ce que fait exactement Windows quand RAMpage est exécuté reste un secret gardé jalousement par MS. Je pense que Windows collecte les "crasses" (garbage), c'est-à-dire que Windows libère la RAM qui n'est plus allouée par certains programmes mais pas encore ajoutés à la liste de la RAM libre, Windows vire de la RAM les dll inutilisées et déplace éventuellement certaines applications vers le fichier d'échange.

L'auteur pose ensuite une question sur l'utilité de son programme.

So what good is RAMpage? Surely any application that requests memory will cause Windows to make the memory available by pushing data out to the swap file? The only difference I can see is that RAMpage initializes the allocated memory as soon as it gets it. This forces Windows to really get the memory and do any necessary memory "housekeeping". As to whether this makes any difference to Windows is debatable -- but if you believe a memory freeing tool is useful, you may as well use a small, efficient, free one.


Que vaut réellement RAMpage ? Il est évident que chaque programme allouant de la RAM va forcer Windows à lui donner cette RAM en éjectant éventuellement un programme inactif vers le fichier d'échange. La seule différence que je constate c'est que RAMpage "initialise" la RAM allouée dès qu'il la reçoit. Ceci force Windows à donner la RAM et faire le "ménage" dans sa gestion mémoire. Si cela change quoi que ce soit pour Windows est discutable mais si vous pensez qu'un programme libérant de la RAM est utile, autant en utiliser un petit, efficace et gratuit.

Dans l'extrait suivant, il explique pourquoi il est déconseillé de garder une valeur fixe de la RAM inoccupée.

I don't buy into the idea of trying to maintain a fixed, (large), amount of free memory, or freeing memory every so often. Trying to maintain, say, 32M of free RAM on a machine with 128M is effectively wasting 32M of RAM. In general, Windows uses memory intelligently, (never thought I'd hear myself say that). By "intelligent" I mean that it tries to keep as much useful information in memory as possible. Freeing lots of memory generates unnecessary swap file activity and rarely does anything to improve the performance of the applications that are left behind.

Je ne cautionne pas l'idée de maintenir une quantité fixe de RAM ou de libérer de la RAM à un intervalle de temps défini. Tenter de garder disons, 32 MB de RAM libre sur une machine avec 128 MB de RAM revient à gaspiller ces 32 MB. En général, Windows utilises intelligemment la RAM (je n'ai jamais pensé que je m'entendrais dire une chose pareille). Par intelligent, je veux dire que Windows essaie de garder le plus de choses utiles en RAM. Libérer de grosses quantités de RAM génère de l'activité avec le fichier d'échange et ne peut que pénaliser les performances des applications encore en mémoire.

Et maintenant, la partie la plus intéressante et révélatrice.

Freeing memory does seem to be useful when memory has leaked over time, or a large number of simultaneous applications are running and a new application is struggling to find more memory. This will not occur until you are down to your last few MBs of RAM. In this situation RAMpage can do a pretty good job. Set the threshold to say 5M and set the amount of memory to free to say 15 - 20M on a 128M machine, (lower if you have less RAM), and you should rarely have to double click the icon. Keeping the amount of memory to free low will also mean that when you do double click, RAMpage should be able to free memory pretty quickly, (assuming you're not double clicking when you already have lots of free RAM).

Libérer de la RAM semble utile quand la mémoire a eu des "fuites" ou lorsque beaucoup d'applications tournent simultanément et un autre programme se bat pour avoir un peu de RAM. Ceci ne se produira que si vous n'avez plus que quelques MB de libre (environ 5). Dans cette situation, RAMpage peut faire du bon boulot.

RAMpage affiche dans la barre de tâches la quantité de RAM libre (pas besoin de RAMpage pour ça, le moniteur système -voir la copie d'écran ci-dessus- le fait très bien).

En pratique, je l'ai testé. Je rappelle ma config : Win98 1ère, 192 MB RAM, CSU=1 (voir plus haut ce que ça signifie), le cache disque (VCache) limité à 80 MB.
Vous constaterez peut-être d'autres effets en fonction de la quantité de RAM, de la version de Windows, de ce qui tourne, du hardware, etc.

Après le démarrage de Windows, j'ai 140 MB de libre, il n'y a que Explorer, SysTray, Sysmon et le gestionnaire du clavier multimédia en mémoire, je n'ai pas d'antivirus ni de firewall. Après avoir utilisé certaines applications, en particulier MyIE2 (mon navigateur), je retombe parfois à 40 ou 50 MB de libre, ce qui reste toujours très honorable. Je n'ai donc pas de raison de vouloir libérer de la RAM. En ressources, je ne descends jamais sous les 50%.
Mais même si j'arrête toutes les applications et que je n'ai plus que les 4 du démarrage, il ne reste que 50 ou 60 MB de libre, il y a de 80 à 100 MB qui ont été utilisés et non libérés.
Je descends parfois à 10 ou 20 mais c'est extrêmement rare. Par contre, comme j'ai limité le VCache, il se remplit assez vite et je n'avais pas trouvé de moyen d'en éjecter ce qui s'y trouvait. C'est là que RAMpage m'est utile, il libère de la RAM mais surtout, il libère une partie du cache disque (qui n'est rien d'autre qu'une partie réservée de la RAM). Cette libération de RAM a pour effet de faire gonfler temporairement mon fichier d'échange mais l'usage reste à zéro (voir plus haut la différence entre taille et usage du fichier d'échange). En fait, Windows n'a rien écrit dedans, il a juste alloué des secteurs disque (le fichier passe en une fraction de seconde de 0 byte à 40 MB).

En conclusion, RAMpage (et ses concurrents) n'est pas d'une grande utilité sauf situation exceptionnelle, le script .vbs peut tout aussi bien faire l'affaire. Mais je ne le déconseillerais pas pour autant.
Je précise que la gestion de la RAM est très complexe et que MS lâche peu d'infos à son sujet, une partie de ce que j'écris et de ce que le gars explique est plutôt empirique, on constate à l'usage certains comportements mais aucune confirmation technique n'est possible, tant qu'on ne verra pas les sources de Win.

Voici les liens vers le soft :

http://www.jfitz.com/software/RAMpage/index.htm

Cette page contient des renseignements intéressants, c'est dans celle-ci que j'ai puisé ce que j'ai traduit ci-dessus :

http://www.jfitz.com/software/RAMpage/RAMpage_FAQS.html


-------------------------
Pierre.

 

Accueil

Infos-news

infos-web

Infos-logiciels

Multimedia

Papier peint

Utilitaires

Liens

Livredor

Courrier