Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrĂ´le

Recherche | Retour aux forums

JOL Archives

La mémoire virtuelle, c'est quoi exactement?

Par Coin-coin le Canapin le 25/11/2002 Ă  17:26:09 (#2640948)

je rencontre souvent des problèmes avec ça, windows me disant qu'elle est pleine à craquer.
et il est clair que le PC rame bizarrement trop pendant quelques minutes, après une séance d'unreal tournament 2003 ou arx fatalis...
j'ai regardé dans les paramètres et il allouait par défaut 350 à 550 Mo de mémoire virtuelle, environ.

donc heu, voilà, ça marche comment? c pour mettre des sortes de fichiers temporaires? faut mettre combien pour être tranquille avec de grosses applications? etc?

Par Kaelt le 25/11/2002 Ă  17:30:52 (#2640995)

c'est le fichier de pagination de ton disque dur ;
en gros, c'est une zone sur le disque ou des données temporaires sont stockées, afin de décharger la RAM, mais qui est plus lente d'acces.

augmenter la taille de ce fichier pagination / memoire virtuelle baisse d'autant la capacité de ton disque dur.

Par Iko le 25/11/2002 Ă  17:35:47 (#2641035)

En d'autres termes c'est le swap de Windows...

niark niark

A laisser gérer par Windows => taille variable... (perte d'efficacité, mais s'il geule encore c'est vraiment que tu n'as plus de place sur ton disque)

Ou alors la fixer la plus grosse possible sur un disque isolé.

Mais ça reste nettement moins efficace que beaucoup de vrai mémoire.

Par Butloch Atreide le 25/11/2002 Ă  17:37:03 (#2641050)

C'est pas mal quand on a un gros DD alors non ?

Par Karsus le 25/11/2002 Ă  17:59:35 (#2641269)

bah la memoire virtuelle reste un million de fois plus lent que la ram réelle....

un HD a un temps d'acces en millisecondes (10 puissance -3) alors que de la rame ça se compte en nanosecondes ( 10 puissance -9 )

donc plus de ram = beaucoup mieu que plein de memoire virtuelle :)

Par Zehaf le 25/11/2002 Ă  18:11:55 (#2641410)

Tout ça ne répond pas à la question (qui , entre nous soit dit, m'intéresse puisque je viens de me prendre le même problème dans la courge avec la beta de ShadowBane...).

Par Suvereign le 25/11/2002 Ă  18:14:53 (#2641441)

Ben pour répondre à la question :
- Vaut mieux acheter de la Ram
- Tu fais un defrag et/ou utilise des logiciels pour mieux la gérer (genre Norton utilies).
- Tu peux en mettre autant que tu veux mais c'est pas pour autant que Windows arrivera à bien la gérer ^^

Par Coin-coin le Canapin le 25/11/2002 Ă  18:22:34 (#2641510)

j'ai 256 Mo de ddr, ça devrait être suffisant...
et j'ai défragmenté recemment.

c pour ça que je me demande pourquoi l'ordi rame tellement après avoir quitté une grosse application... alors que je constate que sur un ordinateur de puissance moindre ça gère beaucoup mieux avec les mêmes logiciels!

Par Missmite le 25/11/2002 Ă  18:25:58 (#2641548)

La memoire virtuelle est née d'une constatation simple : la RAM ca coute tres cher, et donc on en a rarement assez pour faire tout ce qu'on veut (plus tellement vrai desormais mais a l'epoque c'etait vraiment la cas).

Donc tu ne peux pas avoir plus de 16Mo de RAM sur ton pc disons, parce que apres ca coute trop cher. Tu as ton systeme d'exploitation, style windows, qui prend 5 ou 6Mo de memoire pour fonctioner. Et la tu as envie de lancer ton programme preferé qui prend 15Mo. La ca coince : 15 + 5 = 20 > 16. Tu ne peux pas lancer ton programme car ca va planter : tu n'as pas assez de mémoire.

C'est la qu'entre en jeu l'idée de la mémoire virtuelle. Sur les 5 Mo utilisés par ton systeme d'exploitation, il y en a une grosse partie qui n'est pas utilisée par ton programme que tu vas utiliser. L'idée c'est alors de liberer de la mémoire RAM en deplacant les données qui ne sont pas utilisées (ici 4Mo du systeme d'exploitation) vers le disque. Comme ca tu disposes alors de 15Mo de libres pour lancer ton programme en mémoire.

Bien entendu il arrive que tu aies a nouveau besoin des données envoyées sur le disque. Lorsque tu demande l'acces a une zone de mémoire qui a été evacuée sur disque, le processeur va provoquer une "faute de page", ce qui va avoir pour effet de recharger les données dans la mémoire réelle (et a priori de faire virer un autre bloc sur disque avant pour faire une place libre) avant de laisser ensuite le programme acceder comme d'habitude aux données qui ont été remise en RAM.

L'avantage evident de la technique c'est que ca permet de lancer des programmes qui mangent plus que la mémoire totale du PC, sans impact sur la performance ou presque tant que les données effectivement utilisées a un moment ne depassent pas la mémoire physique. Par contre si on se retrouve dans cette situation les perfs seront catastrophiques :

Un programme a besoin de 15Mo pour fonctioner (il utilise toute sa mémoire tres frequement, en lisant une valeur par ci par la par exemple). Le systeme d'exploitation utilise effectivement 3 Mo pour fonctioner sur les 5Mo au total qu'il comprend (2Mo servent pour des fonctions non utilisées a ce moment la).
Dans ce cas, on utilise 17Mo pour 16Mo réel, ce qui veut dire qu'il va sans arret y avoir 1Mo de données qui sont utiles mais qui sont stockées sur disque. Ca aura pour effet de provoquer des fautes de page pratiquement a chaque instruction, autrement dit de nombreux acces mémoires seront remplacés par une couteuse operation de recopie depuis le disque.

Par Iko le 25/11/2002 Ă  18:31:39 (#2641610)

C'est simple :

Si la taille de la memoire virtuelle est fixe et qu'il reste de la place sur ton disque => agrandis lĂ  => reboot => defrag
Si la taille est fixe et qu'il ne reste pas de place sur ton disque => Efface des trucs sur ton disque et agrandis lĂ  => reboot => defrag

Si la taille est variable => efface des trucs sur ton disque. => defrag

Si elle est variable et que tu veux la fixer, le moniteur système te permet de voir quelle quantité de mémoire tu utilises (et donc tu peux prévoir une marge ou détecter que tu en prévois trop si tu as peur du gaspillage).

Ne pas oublier le defrag après chaque changement de taille de la mémoire virtuelle volontaire. Videz la poubelle, les fichiers temporaires, le cache IE (ou autre je m'en balance) avant de le faire.

Ou alors augmente la taille de la vrai mémoire (<= c'est le mieux)
Ou encore de déplacer la mémoire virtuelle sur un disque vide, moins plein ou exclusif.
Ou encore diminuer le nombre d'application résidentes..

Par Missmite le 25/11/2002 Ă  18:43:13 (#2641738)

pour ameliorer la performance de ta memoire virtuelle, le mieux c'est de formater une partition vide de 500Mo environs, et de mettre sur cette partition le fichier d'echange de windows, en lui allouant en taille fixe le maximum de la partition (500Mo). Pour ce qui est du partitionement il est conseillé de mettre cette partition d'echange au milieu du disque plutot qu'aux extremités puisque pour des raisons mecaniques les disques sont plus rapides en temps d'acces au milieu qu'aux extremités (enfin si le disque ne ment pas sur sa geometrie interne evidement).

Bizare que ta memoire virutelle soit remplie totalement, parce que 256 de physique + 350 de virtuelle ca fait quand meme pas mal a remplir la. Sinon pour ameliorer les perfs sans faire ce que je te disais avant qui devrait accelerer serieusement ton pc, tu peux simplement faire un defrag sur le disque qui contient ton fichier d'echange, ca permettra peut-etre d'ameliorer un peu le temps de reponse. Bien entendu la bonne solutoin au probleme est d'ajouter de la memoire pour eviter que ca utilise la memoire virtuelle qui meme bien configurée est 1000 fois plus lente que de la mémoire RAM.

Par Tvashtri le 25/11/2002 Ă  18:49:38 (#2641798)

j'ajouterai qu'il est important de définir une taille fixe au swap file DES LE DEPART, ceci afin d'éviter de se retrouver avec un swap file fragmenté...

Par Coin-coin le Canapin le 25/11/2002 Ă  18:53:45 (#2641835)

de toute façon je comptais acheter de la ram, ça va aider, mais... mais c bizarre que ça sature si vite :/

En reponse a la question de Iko en PM

Par Missmite le 25/11/2002 Ă  19:28:32 (#2642118)

* Mechanics are slow, electronics are fast.

Modern hard disks have many heads. Switching between heads of the same
track is fast, since it is purely electronic. Switching between tracks is
slow, since it involves moving real world matter.

So if you have a disk with many heads and one with less heads and both
are identical in other parameters, the disk with many heads will be
faster.

Splitting swap and putting it on both disks will be even faster, though.

* Older disks have the same number of sectors on all tracks. With these
disks it will be fastest to put your swap in the middle of the disks,
assuming that your disk head will move from a random track towards the
swap area.

* Newer disks use ZBR (zone bit recording). They have more sectors on the
outer tracks. With a constant number of rpms, this yields a far greater
performance on the outer tracks than on the inner ones. Put your swap on
the fast tracks.

* Of course your disk head will not move randomly. If you have swap space
in the middle of a disk between a constantly busy home partition and an
almost unused archive partition, you would be better of if your swap were
in the middle of the home partition for even shorter head movements. You
would be even better off, if you had your swap on another otherwise
unused disk, though.

Summary: Put your swap on a fast disk with many heads that is not busy doing
other things. If you have multiple disks: Split swap and scatter it over all
your disks or even different controllers. Even better: Buy more RAM.

Par Lwevin Myan le 25/11/2002 Ă  21:03:20 (#2642927)

Précisons également pour les 98/98 SE que Windows ne gère pas de façon optimale la mémoire, et peut utiliser le mémoire virtuelle avant d'avoir utilisé tout l'espace mémoire disponible.
Dans le fichier system.ini (fichier système, accessible soit en tapant la commande msconfig, soit dans le répertoire de Windows) :
Dans la section 386enh, rajouter cette ligne :
ConservativeSwapfileUsage=1

(Source, où l'on peut trouver pas mal d'autres astuces très sympathiques)

JOL Archives 1.0.1
@ JOL / JeuxOnLine