2015-02-07 2 views
1

스택 크기와 관련된 옵션을 과 같이 dart -v에 찾을 수 없습니다. 단순히 ulimit을 설정해도 아무 효과가 없습니다. 이것이 제가 시험하는 방법입니다.다트의 최대 스택 크기를 설정하는 방법

foo(n){ 
    print(n); 
    foo(n+1); 
} 

main(){ 
    foo(1); 
} 

UPDATE : 2015년 2월 12일의로서는

는 스레드 스택의 크기가 구성되지 않고, (128 * kWordSize * KB) 디폴트는 [소스 [OSThread :: GetMaxStackSize 참조]를 ] 1

+0

) - 호기심, 그 전에 얼마나 높은 이동 않습니다 불면? –

+0

ES6 표준에 포함되어 있기 때문에 최종적으로 꼬리 호출 최적화를 추가 할 것으로 생각합니다. 한편, 명시 적 꼬리 호출 최적화를위한 몇 가지 pub 패키지가 있습니다. 내 맥북 프로 – JAre

+0

@ 500 위의 프로그램은 콘솔에 표시된 마지막 번호는 25285입니다. –

답변

0

https://code.google.com/p/dart/issues/detail?id=8557#c2

Stack space for the main thread is not set by the VM, but by the OS on launch. ... 

말한다 이 대답은 https://unix.stackexchange.com/a/127615/40327은 특정 값을 전달할 수 있지만 기본값이 있다고합니다. 나는이 다트가하는 일 가정

(유사하지만 윈도우 https://msdn.microsoft.com/en-us/library/windows/desktop/ms686774(v=vs.85).aspx 용) OS의 기본을 사용 분명히 다트 컴파일러는 꼬리 호출 최적화를하지 않습니다

+0

답장을 보내 주셔서 감사합니다. C/C++의 경우 스택 크기를 늘리기 위해'ulimit -S -s unlimited'를 사용했지만, 충분하지 않다면 /etc/security/limits.conf (linux)의 한계를 변경할 것입니다. 이것은 또한 stackexchange 포스트에서 언급 된 방법 중 하나입니다. 나는 위와 같은 프로그램이 여전히 같은 마지막 숫자를 보여 주지만 ulimit으로 작은 값과 큰 값을 모두 시도했다. 다트 vm 스택 크기는 값의 ** 독립적 **입니다. –

+0

그러면 내 대답이 틀릴 수도 있습니다. 공개성을 높이기 위해이 SO 질문에 대한 링크를 https://groups.google.com/a/dartlang.org/forum/#!forum/vm-dev에 게시 할 수 있습니다. 이 주제에 관한 나의 지식은 나의 검색 기술이 가져온 것일뿐입니다 ;-) –

관련 문제