Défragmenteur de RAM
Si tu veux savoir quelle ressource est utilisée, il est possible d'utiliser un petit outil fourni avec Windows (enfin pour Me) c'est le vumètre ressource auquel tu accèdes par le même chemin que le nettoyeur de disque, dans outils système. Une fois lancé, il se colle dans la barre des tâches et varie du vert au rouge en fonction des ressources utilisées (Mémoires, charge CPU, etc..) donc en lançant un programme lourd comme Word puis un autre, puis un autre, regardes comment il réagit.
le problème de la RAM, c'est qu'elle aussi elle se fragmente, et au bout d'un moment il est nécessaire de la défragmenter comme le disque dur, sinon les accès sont plus longs.
le problème de la RAM, c'est qu'elle aussi elle se fragmente, et au bout d'un moment il est nécessaire de la défragmenter comme le disque dur, sinon les accès sont plus longs.
http://www.ac-astuces.com/affiche.php?astuce=349
j'aime bien l'intervention de pollo
http://forum.hardware.fr/hardwarefr/Win ... 4854-1.htm
j'aime bien l'intervention de pollo

http://forum.hardware.fr/hardwarefr/Win ... 4854-1.htm
Oui sauf qu'on est pas tous sous 2000/XP et tout ces systèmes qui sont biens et qui te gèrent ta ram encore mieu que ce que tu peux demander.
La majorité est sous 98 qui sait pas gèrer sa ram et ME qui est à peux près pareil.
Donc ça peut servire.
Surtout quand on a un Toshiba Satellite 1400 avec une carte son émulée et de très mauvaise qualité pour ne pas dire autre chose et qu'en plus on est sous 98 qui sait pas gèrer la RAM.
Mais bon... là n'est pas la question
faut que je trouve j'en ai besoin pour moi déja
.
La majorité est sous 98 qui sait pas gèrer sa ram et ME qui est à peux près pareil.
Donc ça peut servire.
Surtout quand on a un Toshiba Satellite 1400 avec une carte son émulée et de très mauvaise qualité pour ne pas dire autre chose et qu'en plus on est sous 98 qui sait pas gèrer la RAM.
Mais bon... là n'est pas la question



Elle m'a l'air tellement simple qu'elle m'inquiète.
Libérer et défragmenter sont deux choses différentes.
Donc libérer 50 Mo de mémoire, c'est n'importe quelle partie.
ce truc y va pas regarder si tu t'en sers ou pas. il remet à 0
Défragmenter c'est arranger dans le bon ordre puis libérer l'excédent...
Oui j'ai testé même après avoir utilisé Word et pui avoir lancer mon prog qui prenait bcp de mémoire, écrivait une longue chaîne de caractaires contenant plains de @ qui est le caractair le plus gros, te confirmant que ct bien fait, pui qui libèrait la mémoire qu'il avait prit, et le tot de resources disponible restait inchangé.
Pour tout te dire , je n'ai aucune idée de ce que vaut cette astuce .Jacobus a écrit :J'ai comme un doute, Comtois, concernant l'astuce.
Je ne suis pas un adepte des gadgets des trucs et des astuces , je laisse tourner mon pc tel quel , et ça me suffit bien

Tiens on retrouve cette astuce sur un autre site , bon ok ils se recopient les uns les autres

en créant un petit texte avec Notepad (Bloc-note) et en créant un raccourci sur le bureau de Windows, vous allez pouvoir libérer de la mémoire : Ouvrez Notepad et tapez ceci : FreeMem = Space(24000000) Sauvez ce texte sous l'appelation que vous désirez mais avec l'extension VBS (par exemple : Mémoire.vbs). Il ne vous reste plus qu'à faire un clique bouton droit de la souris sur ce texte et de cliquer sur Envoyer vers-Bureau (créer un raccourci). Avec cet exemple, vous libérez 24 méga-octets de mémoire sans utiliser aucune ressource système !! Dernier avertissement : ne pensez surtout pas pouvoir libérer l'intégralité de la mémoire installée. Vous n'obtiendriez qu'un joli message d'erreur : Category: Microsoft VBScript runtime error Description: Out of string space: 'Space' Limitez-vous à la moitié de la ram installée et surtout pensez à fermer tous les programmes ouverts avant de cliquer sur ce raccourci. Nota : cette astuce est directement utilisable sous Windows 98/98 Second Edition et Win ME ainsi que toutes versions de Windows utilisant Internet Explorer 5 ou supérieur. Si ce n'est pas votre cas il vous faudra télécharger sur le site de Microsoft la version 5 de MSE (Microsoft Scripting Engines).
Donc il avait raison. J'ai mal lu fo que je revoi ça.comtois a écrit :Je ne sais pas si c'est de ce genre de choses dont tu parles ?
http://www.dotnetguru.org/articles/GC/GC.html
http://msdn.microsoft.com/library/fre/d ... ection.asp
Si c'est le cas , je te souhaite du courage ,ça a l'air hyper hardu
Mais il faut aussi que je trouve comment faire ça avec PureBasic.


Si ça peut aider, je sais au moins localiser les parties de la mémoire affectées à des processus en cours (je code ça quand j'ai le temps. J'ai des morceaux ayant servis à diverses choses)
principe:
énumérer les processus en cours.
pour chaque processus, rechercher les zones qui lui sont allouées, en parcourant la mémoire avec VirtualQueryEx et un handle sur le processus.
Après ça, on sait ce qui n'est pas utile.
On peut libérer les zones restantes avec VirtualFreeEx ("uncommit")
Quant à déplacer des zones de mémoires affectées à des processus en cours, je ne sais pas. Délicat, si possible.
Notes: avant tout récupérer la taille des pages ("unités de mémoire"), et les addresses max/min d'allocation avec GetSystemInfo.
tout se traite par page (quelques Ko): une page ne peut être partagée.
Les fonctions sur la mémoire ne distinguent pas la RAM physique du fichier d'échange (sur le disque) donc la taille totale est bien supérieure à celle de la RAM.
A mon avis, pour déplacer la zone mémoire d'un processus en cours, il faut le mettre en pause, copier sa mémoire où l'on veut, modifier le "paging file" pour faire correspondre les addresses virtuelles avec la nouvelle localisation, puis reprendre le processus.
Mais ça doit être compliqué...
Pour mettre un processus en pause, PauseThread marche bien, à condition d'avoir l'id du thread primaire créé par le processus, qui n'est pas l'id du processus lui-même.
principe:
énumérer les processus en cours.
pour chaque processus, rechercher les zones qui lui sont allouées, en parcourant la mémoire avec VirtualQueryEx et un handle sur le processus.
Après ça, on sait ce qui n'est pas utile.
On peut libérer les zones restantes avec VirtualFreeEx ("uncommit")
Quant à déplacer des zones de mémoires affectées à des processus en cours, je ne sais pas. Délicat, si possible.
Notes: avant tout récupérer la taille des pages ("unités de mémoire"), et les addresses max/min d'allocation avec GetSystemInfo.
tout se traite par page (quelques Ko): une page ne peut être partagée.
Les fonctions sur la mémoire ne distinguent pas la RAM physique du fichier d'échange (sur le disque) donc la taille totale est bien supérieure à celle de la RAM.
A mon avis, pour déplacer la zone mémoire d'un processus en cours, il faut le mettre en pause, copier sa mémoire où l'on veut, modifier le "paging file" pour faire correspondre les addresses virtuelles avec la nouvelle localisation, puis reprendre le processus.
Mais ça doit être compliqué...
Pour mettre un processus en pause, PauseThread marche bien, à condition d'avoir l'id du thread primaire créé par le processus, qui n'est pas l'id du processus lui-même.