Dans mon billet sur l’utilisation des ramdisks pour gagner en autonomie, j’évoquais aussi la possibilité pour certains gestionnaires de ramdisks d’exploiter la mémoire non gérée par les versions 32 bits de Windows sur les machines dotées de 4 Go de RAM.
En effet, les version 32 bits de Windows ne supportent pas le PAE, donc sont limitées à un espace d’adressage physique de 4 Go, duquel il faut déduire les adresses occupées par le mapping des IO de certains périphériques dans l’espace d’adressage. En pratique, on se retrouve donc avec moins de 4 Go de mémoire utilisable par Windows. La limite se situe généralement autour de 3.2 Go, mais peut parfois descendre plus bas, à cause de la mémoire partagée avec l’IGP, comme c’est le cas sur mon Macbook :
Mais en pratique, seule une partie des adresses non accessible à Windows sont effectivement mappées sur des IO, et certaines adresses pointent donc toujours sur des zones de mémoire, totalement ignorées par Windows… Voici comment les récupérer pour monter un ramdisk, en utilisant SuperSpeed RamDisk Plus (50$ en version 32 bits).
Tout d’abord, il faut configurer RamDisk Plus pour qu’il aille chercher cette mémoire. Pour ce faire, lancez l’application, puis rendez vous dans la boîte de dialogue d’informations sur la mémoire (File > Memory). Dans la zone « Memory available », vérifiez que la quantité de mémoire indiquée par le System Management BIOS est bien correcte (par exemple, 4096 Mo pour une machine dotée de 4 Go) et supérieure à la quantité exploitable par Windows (« Estimated total memory available »).
Si oui, cliquez sur Unmanaged, puis Configure. Dans la boîte de dialogue qui apparaît, cochez la case « Enable use of unmanaged memory » et laissez les valeurs par défaut des autres champs :
Validez deux fois pour retourner aux informations sur la mémoire. Vous devriez maintenant voir la quantité de mémoire récupérable par RamDisk Plus (ici, 767 Mo, soit plus de 60% de la mémoire non reconnue par Windows) :
Créez ensuite un ramdisk correspondant à vos besoins (Action > Add). RamDisk Plus va automatiquement allouer le ramdisk dans la mémoire récupérée, dans la limite de la taille de celle-ci, puis allouera ce qui dépasse dans la mémoire système. Sur ma machine, après création d’un ramdisk de 800 Mo, 765 Mo sont alloués dans les 767 Mo récupérés (les 2 Mo restants sont probablement réservés par RamDisk Plus pour la gestion de cette zone mémoire) et les 35 Mo restants sont déduits de la mémoire gérée par Windows.
Dans le gestionnaire de tâche, on constate bien que ce ramdisk n’a quasiment pas empiété sur la mémoire gérée par Windows, puisque la charge dédiée ne s’est accrue que de 50 Mo :
Bien entendu, pour profiter au maximum de cette mémoire récupérée, je vous recommande d’allouer un ramdisk dont la taille soit au moins égale à la quantité d’espace récupérable. Si vous n’avez pas l’utilité de tout cet espace, vous pourrez alors l’utiliser pour stocker… le fichier swap de Windows !