1 votes

Placer l'arborescence entière des dossiers dans le cache du DDR ?

Je jouais à Starcraft 2 sur ma machine avec 32 Go de RAM. Je me disais que le jeu n'atteignait jamais plus de 2 Go, mais qu'il devait quand même charger les différentes cartes du jeu solo.

Je vois la structure de la mémoire comme "le cadre du jeu de base + le niveau actuel vont dans la mémoire de travail", ce qui inclut toute la musique, les sprites, etc. Lorsque je veux charger un autre niveau, j'obtiens plusieurs occurrences dans le cache du framework, puis plusieurs absences lorsque l'application va chercher le nouveau niveau sur mon disque dur.

Ma question est la suivante : quelqu'un sait-il s'il existe un moyen de mettre en cache l'intégralité du dossier du jeu, puisqu'il ne fait que 13 Go, de manière à ce que tous les accès à une ressource liée au jeu se fassent par le biais d'un cache RAM et que les temps de chargement soient ainsi réduits ?

Je pense que si tout était en RAM (PC3-12800), la bande passante théorique est de ~12GByte/sec ce qui rendrait tout chargement quasi instantané, non ?

4voto

Jon Lin Points 1323

Pourquoi n'essayez-vous pas de l'installer sur un disque RAM, ou d'y déplacer les fichiers ? A moins de faire de la rétro-ingénierie du programme, un disque RAM est probablement la meilleure solution.
Voici plus d'informations sur les RAMdisks pour les superutilisateurs : https://superuser.com/questions/522011/is-there-any-open-source-ramdisk-software-for-Windows

3voto

user171440 Points 31

Votre système d'exploitation fait déjà exactement ce que vous vouliez : il met activement en cache dans la mémoire vive toutes les données qui ont été lues sur votre disque dur de la manière la plus récente.

Pour tout système d'exploitation digne de ce nom, la mémoire réellement "libre" doit être très faible - quelques mégaoctets seulement. Toute la mémoire restante est consacrée à la mise en cache des données du disque. Si un programme demande un gros bloc de mémoire en utilisant malloc o GlobalAlloc Les données non importantes mises en cache pour la lecture sont supprimées pour satisfaire cette demande d'allocation de mémoire.

Une propriété intéressante de cette mise en cache est que même si vous avez une application 32 bits qui ne peut pas allouer plus de 4 Go de RAM, les fichiers auxquels cette application accède seront toujours mis en cache par votre système d'exploitation 64 bits, même si la taille totale de tous les fichiers est bien supérieure à 4 Go.

En d'autres termes, si vous disposez de 32 Go de RAM et que vous commencez à jouer à votre jeu qui pèse 13 Go, Windows essaiera de mettre activement en cache les 13 Go de RAM. Cependant, cela ne signifie pas qu'ils resteront dans ce cache pour toujours, car la plupart des données sont hautement compressées, et comme Starcraft a besoin de décompresser ces données en mémoire pour pouvoir les manipuler et créer la représentation de votre monde de jeu, il peut essayer d'allouer beaucoup de mémoire à Windows, ce qui peut l'obliger à jeter une partie de ce contenu en cache (mais même dans ce cas, de la manière la moins récemment utilisée).

D'un point de vue pratique, le moyen le plus simple d'accélérer les temps de chargement est probablement d'utiliser un disque SSD. Les disques SSD modernes ont généralement une vitesse de lecture d'environ 500 Mo/s, soit environ 5 fois plus rapide qu'un disque dur classique. Qui plus est, la vitesse de lecture des disques SSD ne s'effondre pas lors de la lecture de très petits fichiers (pour un disque dur standard, la vitesse de lecture peut être 100 fois plus lente pour les petits fichiers).

0voto

Pharaoh Tools Points 36

Ouvrez FAR Manager ou Total Commander et copiez tout le dossier StarCraft à nul. Il sera chargé en mémoire.

Mais je ne pense pas que cela accélère beaucoup le chargement. Charger 100 MB à partir de quelques fichiers n'est pas un problème. Seulement si vous voyez que le disque dur se vide presque constamment, vous pouvez supposer que le disque dur limite vos performances.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X