J'essaie de travailler avec un fichier de données plus grand que ma mémoire.Comment un fichier mappé en mémoire fonctionne-t-il pour des fichiers plus volumineux que la mémoire?
Ma compréhension jusqu'ici est qu'il mappe chaque octet dans le fichier à une adresse dans la mémoire virtuelle. Les données ne sont lues dans la mémoire réelle que lorsque vous en avez réellement besoin (par exemple en accédant à une entrée spécifique), et elles sont lues en morceaux appelés pages.
Mais si je finis par tout traiter dans ce fichier de données, cela ne signifie-t-il pas que tout doit être lu dans la mémoire réelle? Le système d'exploitation décide-t-il automatiquement quelles parties des données déjà en mémoire doivent être libérées pour faire de la place pour des données supplémentaires?
Pour ce projet spécifique, je travaille avec Python sous Linux si cela fait une différence. numpy.memmap
Plus grande que la mémoire physique disponible ou plus grande que l'espace d'adressage virtuel disponible? –