R 프로세스에 사용할 수있는 메모리 늘리기 (또는 줄이기)


답변:


64

에서:

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

Windows 사용자는 R에 메모리가 부족하다는 오류가 표시 될 수 있습니다.

R이 이미 설치되어 있고 이후에 더 많은 RAM을 설치하는 경우 추가 용량을 활용하려면 R을 다시 설치해야 할 수 있습니다.

사용 가능한 메모리 양을 수동으로 설정할 수도 있습니다. R을 닫은 다음 R 프로그램 아이콘 (바탕 화면 또는 프로그램 디렉토리의 아이콘)을 마우스 오른쪽 버튼으로 클릭합니다. ``속성 ''을 선택한 다음``바로 가기 ''탭을 선택하십시오. ``Target ''필드를 찾고 R 실행 파일 위치 주변의 닫는 따옴표 뒤에 다음을 추가합니다.

--max-mem-size = 500M

아래 그림과 같이. 이 값을 최대 2GB 또는 설치 한 물리적 RAM의 최대 양까지 늘릴 수 있습니다.

R이 길이 x의 벡터를 할당 할 수 없다는 오류가 발생하면 R을 닫고``대상 ''필드에 다음 줄을 추가합니다.

--max-vsize = 500M

또는 적절하게. R 프롬프트에 입력하여 R의 사용 가능한 메모리 양을 항상 확인할 수 있습니다.

memory.limit()

사용 가능한 메모리 양을 MB 단위로 제공합니다. 이전 버전의 R에서는 다음을 사용해야 round(memory.limit()/2^20, 2)했습니다..


7
32 비트 Windows에서 R은 설치 한 용량에 관계없이 최대 3Gb의 RAM 만 사용할 수 있습니다. 64 비트 Windows에서 실행되고 사용 가능한 모든 RAM을 사용할 수있는 REvolution Computing에서 사용할 수있는 Windows 용 R의 64 비트 버전이 있습니다. revolution-computing.com/products/revolution-enterprise.php
David Smith

6
두 가지 참고 사항 : (i) memory.limit ()는 Windows에서만 작동하며 (ii) 올바른 대답을 반환하는 명령은 round (memory.limit (), 2)입니다. 2.8.1).
medriscoll

31
Linux에서 작동하는 memory.limit ()와 유사한 정보를 얻는 방법에 대한 제안이 있습니까?
exl

5
웹 페이지가 더 이상 존재하지 않습니다. 이미지 없이는 이것을 따라 가기가 어렵습니다. 예를 들어 "바로 가기"탭이 표시되지 않습니다. 또한 이것을 사용하여 최대 메모리를 줄일 수 있습니까?
blakeoft

6
그렇다면 Mac 사용자는 어떻습니까? 그것에 대해 뭔가를 할 수 있습니까?
Alfredo Lozano 2015

51

사용 memory.limit(). 이 명령을 사용하여 기본값을 늘릴 수 있습니다 memory.limit(size=2500). 여기서 크기는 MB 단위입니다. 이를 실제로 활용하려면 64 비트를 사용해야합니다.

한 가지 다른 제안은 가능한 한 메모리 효율적인 객체를 사용하는 것입니다. 예를 들어 data.frame 대신 행렬을 사용하십시오.


3
나는 이것이 어떻게 작동하는지 정말로 이해하지 못한다. 이 메모리 제한 문제가 발생하여 "총 할당량 8182Mb에 도달했습니다"라는 오류가 발생했습니다. 8GB 램으로 64 비트를 사용하고있어서 SOL 인 것 같았습니다. 그러나 shiggles의 경우 memory.limit (size = 50000) ... 그리고 작동했습니다! 그런데 왜 ???
theforestecologist 17:52에

2
나는 이것이 7 살이라는 것을 알고 있지만 R에서 사용할 수있는 RAM의 양을 줄이려고하지만 값을 줄이려고 할 때 마다이 메시지가 나타납니다 (64 비트 Windows 컴퓨터에는 12GB RAM이 있습니다) . 경고 메시지 : In memory.limit (4095) : 메모리 제한을 줄일 수 없음 : 무시 됨
hellter

7

Microsoft Windows는 가능한 경우 프로세스의 모든 메모리 요청을 수락합니다.

가상 메모리 크기를 제외하고 프로세스에 제공 할 수있는 메모리에는 제한이 없습니다.

가상 메모리 크기는 실행중인 응용 프로그램 수에 관계없이 모든 프로세스에 대해 32 비트 시스템에서 4GB입니다. 모든 프로세스는 32 비트 시스템에서 최대 4GB 메모리를 할당 할 수 있습니다.

실제로 Windows는 프로세스 요청 및 페이징 파일 메커니즘에 따라 RAM 또는 페이지 파일에서 할당 된 메모리의 일부를 자동으로 할당합니다.

그러나 또 다른 한계는 페이징 파일의 크기입니다. 작은 페이징 파일이 있으면 큰 메모리를 할당 할 수 없습니다. 더 많은 메모리 공간을 확보하기 위해 Microsoft 에 따라 페이징 파일의 크기를 늘릴 수 있습니다.


5
  1. 더 많은 램 구매
  2. 64 비트 OS로 전환합니다. 점 1과 결합하십시오.

23
더 많은 RAM을 구입하고 다른 OS로 전환하는 것은 일반적으로 적절한 솔루션이 아닙니다.
om-nom-nom 2011

17
당면한 문제에 적합한 작은 문제를 해결하는 것과 마찬가지입니다. 일반적으로 해결책을 원한다고해서 하나도 얻지 못합니다.
Dirk Eddelbuettel 2012

2

R에 할당 된 메모리 양을 늘리려면 memory.limit 를 사용할 수 있습니다 .

memory.limit(size = ...)

또는

memory.size(max = ...)

인수에 대해

  • 크기 -숫자. NA가 메모리 한계를보고하는 경우, 그렇지 않으면 Mb로 새 한계를 요청하십시오. 32 비트 R 빌드에서는 최대 4095의 값만 허용되지만 '세부 정보'를 참조하세요.
  • 최대 -논리적. TRUE 인 경우 OS에서 얻은 최대 메모리 양이보고되고 FALSE 인 경우 현재 사용중인 양, NA 인 경우 메모리 제한이보고됩니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.