Python MemoryError

Python MemoryError

Python to interaktywny i obiektowy język programowania, który obsługuje wiele modeli programowania i dąży do tego, aby wszystkie modele były dostępne i funkcjonalne. Język Pythona jest łatwy do nauczenia się dla początkującego. W Pythonie istnieje kilka rodzajów błędów, które mogą wystąpić w języku programowania Pythona. Ten artykuł ma podkreślić jeden z błędów w Pythonie o nazwie błąd pamięci, a my omówimy jego definicję, jej typy i sposób uniknięcia lub naprawy błędu pamięci Pythona. Zacznijmy od jego definicji.

Python MemoryError

Błąd pamięci Pythona to błąd, który występuje, gdy pamięć o dostępie losowego, znana również jako RAM, nie może obsługiwać kodu po wykonaniu, ponieważ uruchomiony kod potrzebuje więcej niż istniejący pamięć RAM. Błąd często występuje, gdy duża ilość danych jest ładowana do pamięci i gdy program zabraknie pamięci podczas przetwarzania danych. Mówiąc najprościej, ten błąd występuje, gdy zabraknie pamięci RAM, aby uruchomić kod.

Ten błąd często występuje, gdy duża ilość danych jest ładowana do pamięci, a program zabraknie pamięci podczas przetwarzania danych.

Typy błędów pamięci

Istnieje wiele rodzajów błędów pamięci w programowaniu Python. Jeden z błędów może również wystąpić, jeśli masz duży rozmiar pamięci RAM, który jest w stanie obsłużyć masywne zestawy danych. Inny typ występuje, gdy pojemność RAM jest przekroczona ze względu na dane przechowywane na dysku twardym systemowym.

Oto niektóre rodzaje błędów pamięci:

Nieoczekiwany błąd pamięci w Pythonie

Ten błąd występuje, gdy system ma przestrzeń pamięci RAM, ale oprogramowanie, którego używasz, wypełniło całą dostępną przestrzeń adresu wirtualnego. Ten błąd występuje podczas korzystania z 32-bitowej instalacji Pythona, ponieważ ma on tylko dostęp do 4 GB pamięci RAM. Jeśli system, którego używasz, jest tylko 32-bitowy, dostępna pamięć zostanie zmniejszona. Chociaż w większości przypadków 4 GB pamięci RAM, Python jest nadal językiem programowym, który ma bardziej ogólne języki. Język programowania Pythona jest używany w wielu ważnych dziedzinach, takich jak nauka danych, rozwój aplikacji, sztuczna inteligencja, a także graficzny interfejs użytkownika (GUI).

Błąd pamięci z powodu nieprawidłowej instalacji Pythona i zestawu danych

Plik danych ładowany do pamięci może być mały lub duży w zależności od rodzaju programu, który chcesz uruchomić. Jeśli jednak duża ilość zestawu danych zostanie załadowana do pamięci, aby uruchomić obliczenia, przechowuj dane lub uruchom łatki, pamięć może szybko się wyczerpać.

Kolejny błąd pamięci może wystąpić, jeśli zainstalujesz niewłaściwy pakiet Python. Na przykład, jeśli ręcznie zainstalowałeś w wersji 2 Python.7 i inne niezbędne programy w systemie Windows, możesz wystąpić błąd pamięci z powodu niepoprawnego pakietu instalacji.

Błąd brak pamięci

Komputer może zwykle rozpowszechniać pamięć, aż będzie pełna, a menedżer pamięci używa dostępnej przestrzeni dysku twardego do przechowywania plików pamięci lub dokumentów, jeśli nie mogą zmieścić się w pamięci RAM. To prowadzi do błędu poza pamięcią i możesz go wyświetlić, przechodząc do właściwości systemu, a następnie wybierając opcje wydajności, w których znajdziesz opcję kopii zapasowej, która prowadzi do wyświetlania pamięci wirtualnej w systemie Windows.

W poniższej sekcji zapewnimy Ci przykłady błędów pamięci i szeroko stosowanych rozwiązań do śledzenia.

Przykład:

Zacznijmy od interesującego kodu, aby zobaczyć ten błąd w pracy. Tutaj zaczynamy od pustej tablicy o nazwie „ABC” i dodajemy do niej struny za pomocą zagnieżdżonych tablic. W tym przykładzie stosuje się trzy poziomy zagnieżdżonych tablic z 20 000 iteracji dla każdego. To wskazuje ciąg „Jeszcze raz!”Wygląda na 2 000 000 000 razy w tablicy„ ABC ”na końcu programu.

ABC = []
dla M w zakresie (20000):
dla n w zakresie (20000):
dla K w zakresie (20000):
ABC.Dodatek ("Jeszcze raz!")

Tutaj widać, że poprzedni kod powoduje błąd pamięci, a powód jest dość oczywisty.

Jak uniknąć błędu pamięci

Istnieje kilka rozwiązań dla błędów pamięci i potrzebujesz odpowiedniego, aby je naprawić. Nieoczekiwany błąd pamięci można rozwiązać, jeśli zainstalujesz 64-bitową wersję Pythona zamiast wersji 32-bitowej, ponieważ będzie miał znacznie więcej pamięci i pamięci RAM. Błąd zestawu danych powinien użyć dedykowanych metod generatora i klas, które zostaną omówione.

Poniżej znajdują się rozwiązania, które można wykorzystać, aby uniknąć błędu:

Bezpłatna pamięć w Pythonie

Pozbywając się niepotrzebnych i nieużywanych danych, usuwając je lub uwalniając, pamięć będzie miała więcej miejsca. Możemy również przechowywać tylko odpowiednie dane za pomocą generatorów lub za pomocą techniki wsadowej do podziału dużych zestawów danych na mniejsze zestawy danych. Aby to zrobić, możemy użyć następującego kodu:

Ten program, znany jako Garbage Collector (GC), jest wykorzystywany do uwolnienia pamięci. Możemy zwolnić pamięć, eliminując niereferencyjne obiekty za pomocą importu Garbage Collector i GC.Zbieranie () linii.

Ogranicz użycie procesora

Tutaj moduł zasobów można użyć do ograniczenia użycia pamięci programów lub procesora, aby nie wystąpił błąd pamięci. Można to zrobić za pomocą następującego kodu:

Tutaj importujemy biblioteki sygnału jako „seg”, zasoby jako „RES” i „OS”. Aby sprawdzić, czy limit czasowy jest przekroczony, używamy kodu „Check_Time_Ex Suced (Singo, Frame)” i drukuj czas. Aby skonfigurować limit zasobów, używamy kodu „set_runtime (sekundy)”.

Ogranicz użycie pamięci

Aby ograniczyć użycie pamięci, następujący kod ogranicza całkowitą przestrzeń adresową. Tutaj importujemy moduł zasobów i definiujemy funkcję o nazwie „pamięć_size”, w której zapewniamy opcję ustawienia limitu.

Importuj zasób jako RES
def pamięć_size (max_size):
miękkie, twarde = res.getrlimit (res.Rlimit_as)
res.setrlimit (res.Rlimit_as, (max_size, hard))

Przydzielić więcej pamięci

Błąd pamięci można również uniknąć, jeśli więcej pamięci można przydzielić do ustawień pamięci Pythona poprzez rekonfigurowanie pamięci do przydzielenia większej liczby pamięci RAM.

Wybierz mniejszy zestaw danych lub użyj komputera z większą pamięcią

Korzystanie z progresywnych technik ładowania danych do losowego próbkowania danych po pierwszych 100, 1000 lub 100 000 rzędów w celu rozwiązania problemu. Możemy również uniknąć błędu pamięci, jeśli mamy dostęp do większego komputera z większą pamięcią.

Importuj Numpy
Numpy.losowy.Jednolity (niski = 1, wysoki = 20, rozmiar = (50000 200000))

Tutaj widzimy, że jeśli użyjemy operacji „Numpy”, wytwarza liczbę losową od 50 000 do 200000, przy czym najniższa liczba to 1, a najwyższa to 20. Rozmiar wymieniony w kodzie jest tak masywny, że występuje błąd pamięci.

Dlatego lepiej jest używać mniejszych zestawów danych lub korzystać z komputera o wyższej pamięci. Na przykład, jeśli użyjemy 1000 i 20000 zamiast 50000 i 200000, kod nie wyświetli błędu.

Importuj Numpy
Numpy.losowy.Jednolity (niski = 1, wysoki = 20, rozmiar = (1000 20000))

Wniosek

W tym artykule rozmawialiśmy o błędach pamięci. Naszym głównym wkładem jest to, że błąd pamięci jest użyciem pamięci RAM na naszym komputerze, w którym odbywa się wiele operacji. Nauczyliśmy się również różnych metod, które można wykorzystać do radzenia sobie z błędem pamięci Pythona. Ten artykuł jest prostym przewodnikiem, który przedstawia błąd pamięci, jaki są jego typy i jak możemy go rozwiązać lub uniknąć.