2009-09-08 11 views

Odpowiedz

48

Skąd:

http://gking.harvard.edu/zelig/docs/How_do_I2.html (mirror)

użytkownicy Windows mogą się błąd, że R zabrakło pamięci.

Jeśli R już zainstalowany i następnie zainstalować więcej pamięci RAM, może być konieczne ponowne zainstalowanie R w celu korzystając z dodatkowej pojemności.

Możesz również ręcznie ustawić ilość dostępnej pamięci . Zamknij R, , a następnie kliknij prawym przyciskiem myszy ikonę programu R (ikona na pulpicie lub w katalogu Twój program). Wybierz opcję `` Właściwości '', a następnie wybierz kartę `` Skrót '' z . Spójrz na `` dziedzinie target '' i po zamknięciu cytaty wokół lokalizacji R executible, dodać

--max-mem-size = 500

jak pokazano na rysunku poniżej. Możesz zwiększyć tę wartość do 2 GB lub maksymalną ilość fizycznej pamięci RAM, którą zainstalowałeś .

Jeśli pojawi się błąd, że R nie może przeznaczyć wektor o długości X, blisko z R i dodaj następującą linię do z Celu „” `` pola:

--max-vsize = 500M

lub stosownie do potrzeb. Można zawsze sprawdzić, ile pamięci R ma dostępne wpisując w R szybkiego

memory.limit() 

co daje ilość dostępnej pamięci w MB. W poprzednich wersjach R trzeba było użyć: round (memory.limit()/2^20, 2)

+5

Należy pamiętać, że w 32-bitowym systemie Windows, R może wykorzystywać do 3 Gb pamięci RAM, niezależnie od tego, ile zainstalowałeś. Dostępna jest 64-bitowa wersja R dla systemu Windows dostępna z oprogramowania REvolution Computing, która działa w 64-bitowym systemie Windows i może korzystać z całej dostępnej pamięci RAM: http://www.revolution-computing.com/products/revolution-enterprise.php –

+6

Tylko dwie uwagi: (i) memory.limit() działa tylko w systemie Windows i (ii) polecenie, które zwróci poprawną odpowiedź, jest okrągłe (memory.limit(), 2) - przynajmniej w mojej wersji R (2.8.1). – medriscoll

+18

Jakieś sugestie, w jaki sposób uzyskać podobne informacje jak memory.limit() działające na Linuksie? – exl

8
  1. Kup więcej RAM
  2. Przełączanie się w 64-bitowym systemie operacyjnym. Połączyć z punktem 1.
+12

Kup więcej pamięci RAM (i przełącz się na inny system operacyjny) nie jest ogólnie odpowiednim rozwiązaniem. –

+11

Oczywiście, tak jak w przypadku mniejszych problemów, które są odpowiednie dla danego problemu. Życzenie na rozwiązanie zazwyczaj też cię nie dostarczy. –

4

Microsoft Windows akceptuje wszelkie żądania pamięci z procesów, jeśli można to zrobić.

Nie ma limitu dla pamięci, która może być dostarczona do procesu, z wyjątkiem rozmiaru pamięci wirtualnej.

Rozmiar pamięci wirtualnej to 4 GB w systemach 32-bitowych dla dowolnych procesów, niezależnie od liczby uruchomionych aplikacji. Każdy proces może przydzielić do 4 GB pamięci w systemach 32-bitowych.

W praktyce system Windows automatycznie przydziela niektóre części przydzielonej pamięci z pamięci RAM lub pliku stronicowania w zależności od żądań procesów i mechanizmu plików stronicowania.

Ale innym ograniczeniem jest rozmiar pliku stronicowania. Jeśli masz mały plik stronicowania, nie możesz przydzielić dużych wspomnień. Można zwiększyć rozmiar pliku stronicowania zgodnie z wartością Microsoft, aby uzyskać więcej miejsca w pamięci.

37

Użyj memory.limit(). Możesz zwiększyć domyślną wartość za pomocą tego polecenia, memory.limit (size = 2500), gdzie rozmiar jest w MB. Musisz korzystać z 64-bitów, aby naprawdę skorzystać z tego.

Inną propozycją jest użycie obiektów wydajnych pamięciowych wszędzie tam, gdzie jest to możliwe: na przykład użyj macierzy zamiast danych.frame.

+3

Nie bardzo rozumiem, jak to działa. Wpadłem na ten problem z limitem pamięci i otrzymałem komunikat "Osiągnięto całkowitą alokację 8182Mb". Używam 64-bitowego z 8GB RAM, więc wydawało mi się SOL. Jednak dla shiggles ustawiam memory.limit (size = 50000) ... I TO DZIAŁA! Ale dlaczego??? – theforestecologist

+2

Wiem, że to 7 lat, ale staram się zmniejszyć ilość pamięci RAM, które mogą być używane przez R, ale gdy próbuję zmniejszyć wartość otrzymuję tę wiadomość (Mam 12 gb pamięci RAM na 64-bitowym komputerze z systemem Windows). Komunikat ostrzegawczy: In memory.limit (4095): nie można zmniejszyć limitu pamięci: ignorowane – hellter

Powiązane problemy