Comment Manger de la Mémoire à l'aide de Python?
Juste pour l'expérience, et de Plaisir...
Je suis en train de créer une application qui permet de "Volontairement" consomment de la RAM, autant que nous le préciser immédiatement.
par exemple, je veux consommer 512 MO de RAM, puis l'application va consommer 512 MO directement.
J'ai recherche sur le web, la plupart d'entre eux sont à l'aide de la boucle while pour remplir la ram avec la variable ou de données. Mais je pense qu'il est temps de remplir la RAM et peut ne pas exact non plus.
Je suis à la recherche d'une bibliothèque python à propos de la gestion de la mémoire. et suis tombé sur ces http://docs.python.org/library/mmap.html. Mais ne peut pas comprendre comment utiliser ces bibliothèque de manger de la RAM, l'Espace d'un seul coup.
Je n'ai jamais vu un mem-mangeur d'application, mais ne sais pas comment ils ont été écrits...
Alors, est-il tout autre meilleure suggestion pour Remplir la RAM avec des données aléatoires immédiatement?
Ou Devrais-je simplement utiliser lors de la boucle pour remplir les données manuellement, mais avec le Multi-Threading pour le rendre plus rapide?
- pourquoi ne pas vous créer un ensemble aléatoire de la taille appropriée?
- juste
data = 'X' * int((wanted_bytes-python_overhead) * some_constant)
- que simple être, sûrement, il ne peut pas
- oui, ça marche... Mais vous savez quoi, j'ai juste redémarré mon ordinateur.. je ne sais pas combien exactement il va consommer .... 🙂
- Merci Yoda 🙂 Compris et résolu à l'expérience 😉 Merci beaucoup 🙂
- Je ne suis pas tester n'importe quel script parce que mon ordinateur n'a pas d'option pour sutdown ( lorsque coincé ) 🙂
Vous devez vous connecter pour publier un commentaire.
La manière la plus simple pourrait être:
Semblait fonctionner assez bien dans mes tests.
Modifier: en Python 3, vous pouvez utiliser
bytearray(512000000)
à la place.Vous ne serez pas en mesure d'allouer toute la mémoire vous pouvez à l'aide de constructions comme les
Il est préférable d'ajouter une liste comme dans
Ici est un plus code qui vous donnera plus d'informations sur l'allocation de mémoire limites:
C'est le résultat que j'obtiens:
tot, avail, percent, used, free, active, inactive, buffers, cached = psutil.virtual_memory()
pour éviterValueError: too many values to unpack
.Ici est une version de markolopa de la réponse qui a fonctionné pour moi:
Vous pouvez allouer une énorme quantité de ram en exécutant :
J'ai trouvé ce code de congélation mon pc en 5 minutes
L'enregistrer dans un .pyw pour le fond d'allocation de ram
Si il ne gèle pas votre pc, essayez d'augmenter la valeur du
Pour l'arrêter rapidement,Enregistrer ce code dans un .py fichier: