Python MemoryError

Python MemoryError

Python est un langage de programmation interactif et orienté objet qui prend en charge plusieurs modèles de programmation et s'efforce de rendre tous les modèles accessibles et fonctionnels. La langue python est facile à apprendre pour un débutant. Dans Python, il existe plusieurs types d'erreurs qui peuvent se produire dans le langage de programmation Python. Cet article doit mettre en évidence l'une des erreurs de Python appelée erreur de mémoire et nous discuterons de sa définition, de ses types et de la façon d'éviter ou de corriger l'erreur de mémoire Python. Commençons par sa définition.

Python MemoryError

L'erreur de mémoire Python est une erreur qui se produit lorsque la mémoire d'accès aléatoire, également connu sous le nom de RAM, ne peut pas prendre en charge le code lorsqu'il est exécuté car le code qui s'exécute nécessite plus que le RAM existant. L'erreur se produit souvent lorsqu'une grande quantité de données est chargée en mémoire et lorsqu'un programme manque de mémoire lors du traitement des données. Autrement dit, cette erreur se produit lorsque vous manquez de RAM pour exécuter le code.

Cette erreur se produit souvent lorsqu'une grande quantité de données est chargée dans la mémoire et que le programme manque de mémoire lors du traitement des données.

Types d'erreur de mémoire

Il existe de nombreux types d'erreurs de mémoire dans la programmation Python. L'une des erreurs peut également se produire si vous avez une grande taille de RAM capable de gérer les ensembles de données massifs. Un autre type se produit lorsque la capacité RAM est dépassée en raison des données stockées sur le disque dur du système.

Voici quelques types d'erreurs de mémoire:

Erreur de mémoire inattendue dans Python

Cette erreur se produit lorsque le système a un espace de RAM, mais le logiciel que vous utilisez a rempli tout l'espace d'adressage virtuel dont il dispose. Cette erreur se produit lors de l'utilisation d'une installation Python 32 bits car elle n'a accès qu'à 4 Go de RAM. Si le système que vous utilisez est uniquement 32 bits, la mémoire disponible sera réduite. Bien que 4 Go de RAM soient suffisants dans la plupart des cas, Python est toujours un langage de programmation qui a des langages plus généraux. Le langage de programmation Python est utilisé dans de nombreux domaines importants tels que la science des données, le développement d'applications, l'intelligence artificielle et également l'interface utilisateur graphique (GUI).

Erreur de mémoire en raison d'une installation incorrecte de Python et d'un ensemble de données

Le fichier de données chargé dans la mémoire peut être petit ou grand selon le type de programme que vous souhaitez exécuter. Cependant, si une grande quantité d'ensemble de données est chargée dans la mémoire pour exécuter les calculs, stockez les données ou exécutez les correctifs, la mémoire peut rapidement s'épuiser.

Une autre erreur de mémoire peut se produire si vous installez le mauvais package Python. Par exemple, si vous avez installé manuellement la version Python 2.7 et d'autres programmes nécessaires sur Windows, vous pouvez ressentir une erreur de mémoire en raison d'un package d'installation incorrect.

Erreur hors mémoire

Un ordinateur peut généralement distribuer la mémoire jusqu'à ce qu'il soit plein, et le gestionnaire de mémoire utilise l'espace disque dur disponible pour stocker les fichiers de mémoire ou les documents s'ils ne peuvent pas s'intégrer dans la RAM. Cela conduit ensuite à une erreur hors mémoire et vous pouvez le visualiser en entrant dans les propriétés du système, puis en sélectionnant les options de performances où vous trouverez une option de sauvegarde qui vous amène à afficher la mémoire virtuelle sous Windows.

Dans la section suivante, nous vous fournirons quelques exemples d'erreurs de mémoire et les solutions largement utilisées à suivre.

Exemple:

Commençons par un code intéressant pour voir cette erreur en travail. Ici, nous commençons par un tableau vide nommé «ABC» et y ajoutant les cordes en utilisant les tableaux imbriqués. Dans cet exemple, trois niveaux de tableaux imbriqués avec 20 000 itérations pour chacun sont utilisés. Cela indique la chaîne «encore une fois!»Apparaît 2 000 000 000 fois dans le tableau« ABC »à la fin du programme.

ABC = []
Pour M à portée (20000):
pour n dans la gamme (20000):
pour K dans la gamme (20000):
abc.Ajouter ("encore une fois!")

Ici, vous pouvez voir que le code précédent entraîne une erreur de mémoire et la raison est assez évidente.

Comment éviter une erreur de mémoire

Il existe plusieurs solutions pour les erreurs de mémoire, et vous avez besoin de la bonne pour les réparer. L'erreur de mémoire inattendue peut être résolue si vous installez la version 64 bits de Python au lieu de la version 32 bits car elle aura beaucoup plus de stockage et de RAM même s'il y a plus d'utilisation de la mémoire. Une erreur d'ensemble de données doit utiliser les méthodes et classes générateurs dédiés qui seront discutés.

Voici quelques solutions qui peuvent être utilisées pour éviter l'erreur:

Mémoire libre en python

En se débarrassant des données inutiles et inutilisées en la supprimant ou en la libérant, la mémoire aura plus d'espace. Nous pouvons également stocker uniquement les données pertinentes à l'aide de générateurs ou utiliser une technique de lot pour diviser les grands ensembles de données en petits ensembles de données. Pour ce faire, nous pouvons utiliser le code suivant:

Ce programme, connu sous le nom de Garbage Collector (GC), est utilisé pour libérer la mémoire. Nous pouvons libérer la mémoire en éliminant les objets non référencés à l'aide du collecteur d'importation et de GC.COLLECT ().

Limiter l'utilisation du processeur

Ici, le module de ressource peut être utilisé pour limiter l'utilisation de la mémoire des programmes ou du CPU afin qu'une erreur de mémoire ne se produise pas. Cela peut être fait avec le code suivant:

Ici, nous importons les bibliothèques du signal comme «SEG», la ressource comme «res» et «OS». Pour vérifier si le délai est dépassé, nous utilisons le code «Check_time_Exceed (Singo, Frame)» et imprimez le temps en UP. Pour configurer la limite de ressources, nous utilisons le code de "set_runtime (secondes)".

Restreindre l'utilisation de la mémoire

Pour limiter l'utilisation de la mémoire, le code suivant limite l'espace d'adressage total. Ici, nous importons le module de ressource et définissons une fonction nommée «Memory_Size» dans laquelle nous fournissons l'option pour définir une limite.

importer des ressources sous forme de res
def Memory_Size (max_size):
doux, dur = res.getrlimit (res.Rlimit_as)
res.setrlimit (res.Rlimit_as, (max_size, dur))

Allouer plus de mémoire

Une erreur de mémoire peut également être évité si plus de mémoire peut être allouée aux paramètres de mémoire de Python en reconfigurant la mémoire pour allouer plus de RAM.

Choisissez un ensemble de données plus petit ou utilisez un ordinateur avec plus de mémoire

En utilisant les techniques de chargement de données progressives pour goûter au hasard les données après les 100 premières lignes de 100, 1000 ou 100 000 premières pour résoudre le problème. Nous pouvons également éviter l'erreur de mémoire si nous avons accès à un ordinateur plus grand avec plus de mémoire.

Importer Numpy
nombant.aléatoire.uniforme (bas = 1, haut = 20, taille = (50000,200000))

Ici, nous pouvons voir que si nous utilisons les opérations «Numpy», elle produit des nombres aléatoires entre 50 000 et 200000, le nombre le plus bas étant 1 et le plus élevé étant 20. La taille mentionnée dans le code est si massive qu'une erreur de mémoire se produit.

Par conséquent, il est préférable d'utiliser des ensembles de données plus petits ou d'utiliser un ordinateur avec une mémoire plus élevée. Par exemple, si nous utilisons 1000 et 20000 au lieu de 50000 et 200000, le code ne montrera pas l'erreur.

Importer Numpy
nombant.aléatoire.uniforme (bas = 1, haut = 20, taille = (1000 20000)))

Conclusion

Dans cet article, nous avons parlé d'erreurs de mémoire. Notre principale contribution est que l'erreur de mémoire est l'utilisation de la RAM dans notre ordinateur, où de nombreuses opérations ont lieu. Nous avons également appris différentes méthodes qui peuvent être utilisées pour gérer une erreur de mémoire Python. Cet article est un guide simple qui présente ce qu'est une erreur de mémoire, ce que sont ses types et comment nous pouvons le résoudre ou l'éviter.