Pour un jeu 32 bits, comme la plupart des jeux le sont pour diverses raisons, même un jeu fourni sur un DVD simple face (4,3 Go) a déjà beaucoup plus de contenu qui peut être inséré dans un espace d'adressage 32 bits. Et cela suppose que le contenu n'est pas compressé sur le disque, et de manière parfaitement optimale, chargez tout à la fois dans une approche d'espace d'adressage contiguë. De nombreux jeux sont désormais disponibles sur plusieurs DVD, dépassant facilement 10 Go de contenu. D'après mon expérience sur PC, une fois que votre espace d'adressage approche, les allocations de 2 Go commencent à échouer, et cela devient une limite stricte, quelle que soit la quantité de mémoire physique dont dispose l'utilisateur.
Si vous passez au 64 bits, en supposant que votre moteur le supporte, cette limite dure disparaît, pour être remplacée par une limite souple efficace - dès que l'échange de mémoire virtuelle commence à se produire, les performances du jeu chutent de façon inacceptable. Si le processus principal doit attendre que la mémoire soit paginée, la fréquence d'images saccadera et glitch. La mémoire virtuelle peut rendre cela transparent, mais cela ne le rend pas performant. Physiquement, il faut du temps pour récupérer cette mémoire à partir du disque, et pendant que vous attendez, votre jeu est au point mort. Bien qu'il soit possible de contourner le problème (avec une prélecture en arrière-plan des pages de mémoire dont vous savez que vous aurez bientôt besoin), c'est un processus difficile et peu fiable, et aura toujours des implications en termes de performances.
Les algorithmes du système d'exploitation pour décider des pages à échanger sur le disque n'ont aucune connaissance de votre jeu et de ce dont il aura probablement besoin ensuite. De plus, le système d'exploitation doit toujours prendre en charge d'autres applications fonctionnant simultanément avec votre jeu, ainsi que le système d'exploitation lui-même. Le fait de devoir bloquer pendant que les pages sont renvoyées à partir du disque est un énorme impact sur les performances, et peu importe que ce soit votre jeu, une autre application ou le système d'exploitation qui en découle, les performances du jeu en souffriront considérablement.
Ainsi, que la limite de mémoire soit douce ou dure, la mémoire est toujours limitée. Mais même si vous pouviez tout charger à la fois, sans atteindre une limite de performances, il y a toujours des raisons pour lesquelles vous ne voudriez pas:
Votre jeu prend beaucoup plus de temps à charger et à atteindre un état interactif qu'il n'en a besoin, car il charge simplement tout au début et le maintient en permanence. Vous pouvez charger environ 150 Mo / s à partir d'un disque dur, et même le lecteur de DVD le plus rapide (24x) se charge à 33 Mo / s. Cela signifie que l'exemple de contenu de 4,3 Go de DVD prendra au moins 30 secondes à charger à partir du disque dur et plus de 133 secondes à charger à partir du DVD. Ce sont des temps de chargement trop longs.
Votre jeu prend beaucoup plus de mémoire que ce qui est justifié. Si seulement 10% du contenu est visible à un moment donné, la détention du reste du résident est simplement du gaspillage et empêche l'utilisateur d'utiliser cette mémoire pour autre chose. Les utilisateurs ne pardonnent généralement pas les jeux qui nécessitent une quantité disproportionnée de mémoire pour fonctionner correctement.
La diffusion dynamique d'actifs à partir du disque, que ce soit en arrière-plan ou de manière synchrone pendant un écran de chargement, vous permet d'être beaucoup plus efficace dans votre utilisation de la mémoire, avec un effort négligeable et seulement un inconvénient mineur pour l'utilisateur. Mais c'est une optimisation, et comme toute autre optimisation, elle a des rendements décroissants plus vous essayez de l'appliquer. À un certain point, l'augmentation de l'empreinte mémoire pour garder quelque chose de résident est compensée par les avantages tirés de l'avoir là sans avoir à le charger. Mais jusqu'à ce que ce point soit atteint, il est préférable de ne charger que ce dont vous avez besoin, quand vous en avez besoin.