2011-02-16 2 views
7

이전 버전의 MATLAB (7.6)에서 나는 성가신 것으로 생각되는 OutOfMemoryErrors를 사용했습니다. 그러나 7.11로 업그레이드 한 이후로 어떤 이유로 더 이상 오류가 발생하지 않습니다.MATLAB이 OutOfMemoryExceptions 또는 최대 가변 크기 오류를 throw하지 않음

실수로 너무 큰 변수를 만들려고하면 MATLAB 셸에서 변수를 만들고 내 컴퓨터를 정지 시키려고 시도합니다.

이러한 오류가 발생하여 정상적으로 종료되거나 내 코드를 디버깅 할 수 있지만 어디에서나 해결책을 찾을 수 없습니다.

아마도 유용한 세부 정보 : 64 비트 컴퓨터에서 4GB RAM이있는 OSX 10.5를 사용하고 있습니다. MATLAB 7.6에서

:

$ rand(50000); 
??? Error using ==> rand 
Maximum variable size allowed by the program is exceeded. 

MATLAB 7.11에서 :

$ rand(50000); 
(hang) 
+0

좋은 질문입니다. Hubris는 항상 나를 잡는 것처럼 보이고 결국 MATLAB을 충돌시키는 거대한 행렬을 생성하게됩니다. – Tim

+0

7.6 -> 7.11이 업그레이드가 아닌 다운 그레이드 인 것 같습니다. – albanx

+0

@albanx : 6-> 11은 업그레이드입니다. 7.1.1이 아닙니다. – Jonas

답변

2

버전 7.6과 7.11 사이에서 Macintosh 버전의 MATLAB은 32 비트 응용 프로그램에서 64 비트 응용 프로그램으로 전환되었습니다. 이제 주소 공간이 부족하여 대신 MATLAB을 사용합니다.

+0

이것은 가장 가능성있는 답처럼 보입니다. 인위적으로 MATLAB에서 주소 공간의 양을 억제하는 방법이 있다고 가정하지 않습니까? –

+0

MATLAB에서는 (보통 사람들은 더 많은 주소 공간을 원합니다!) 불행하게도 Mac OS X는 사용 가능한 메모리를 제한하기 위해 limit/ulimit 메커니즘을 지원하지 않습니다. – SCFrench

1

매트랩 끊지 않습니다. 영원히 걸리는 페이징 일뿐입니다. 큰 배열을 할당하고 Activity Monitor를 열고 '가상 메모리'가 성장하고 성장하는 것을보십시오.

시스템에서 페이지 파일 크기를 줄이면 해당 문제를 피할 수 있습니다.