J’ai écrit un programme qui développe une firebase database de nombres premiers. Ce programme est écrit en python et fonctionne sur Windows 10 (x64) avec 8 Go de RAM.
Le programme stocke tous les nombres premiers qu’il a trouvés dans une list
d’ integers
pour d’autres calculs et utilise environ 6-7GB
Go de RAM en cours d’exécution. Pendant certaines courses, ce chiffre est tombé en dessous de 100MB
L’utilisation de la mémoire rest alors faible pendant toute la durée de l’exécution, mais augmente comme prévu à mesure que d’autres nombres sont ajoutés au tableau principal. Notez que toutes les exécutions ne provoquent pas de perte de mémoire.
Utilisation de la mémoire mesurée avec le gestionnaire de tâches
Ces gouttes apparemment aléatoires m’ont conduit aux théories suivantes:
1, 2 et 3 sont des théories incorrectes.
4 est correct. Windows (pas Python) déplace une partie de votre mémoire de processus pour échanger de l’espace. Ceci est presque totalement transparent pour votre application – vous n’avez rien à faire de spécial pour répondre ou gérer cette situation. La seule chose que vous remarquerez est que votre application peut être plus lente à mesure que les informations sont écrites et lues sur le disque. Mais tout se passe de manière transparente. Voir https://en.wikipedia.org/wiki/Virtual_memory pour plus d’informations.
Avez-vous entendu parler de la pagination? Windows vide certains fichiers RAM (qui n’ont pas été utilisés depuis longtemps) sur votre disque dur pour empêcher votre ordinateur de s’épuiser ou de tomber en panne.
Seul Windows traite de la gestion de la mémoire. Bien que, si vous utilisez Windows 10, cela compressera également votre mémoire, un peu comme un fichier zip.