만약 죽는다면 인자 개수를 늘리거나 지역변수로 크기 존나 큰 배열 잡아주거나 그러면 더 빨리 죽음?
흠..
댓글 11
토탈 스택을 줄여봐 금방죽어
시크(211.247)2015-10-12 04:09
우선 해볼게요
ㅁㄴㅇㄹ(182.211)2015-10-12 04:11
존나빨리뒈지는데 너는 왜 안죽디? - DCW
씹죶(39.7)2015-10-12 07:22
ㄴ모르겄네요 메인함수 재귀로 카운트 출력해보니 16만번쯤 호출돼야 죽네요
익명(211.36)2015-10-12 08:30
vs2015 윈10 64비트임
익명(211.36)2015-10-12 08:31
바로는 안죽고 stack 이 overflow되면 터짐. 간단하게 얘기해서 함수가 돌때마다 stack이 쌓이는데 무한 loop을 돌게되면 언젠간 overflow가 걸림
익명(110.70)2015-10-12 08:57
ㄴ근데 배열 크기를 1메가 훨씬 넘게 잡고 memset같은걸로 액세스했는데도 안터지던데 정상인가요?스택 예약 크기는 기본값이에요
익명(211.36)2015-10-12 08:59
음.. 저도 컴퓨터 구조 시간에 그렇게 배워서 그런걸로만 알고있었는데, 프로그램 언어에 따라 garbage를 처리하는 방식도 차이가 있겠고, 혹은 stack이 쌓이지 않을 수도 있지 않을까요?
익명(110.70)2015-10-12 09:28
어셈블리 할때 보면, 지역변수 할당하려고 esp를 밑으로 내린다음에 할당 시키잖아요, 그리고 마지막에 함수를 리턴할때 esp가 위로 당겨지니까, 결국 스택은 그대로가 되는건데, 똑똑한 컴파일러는 이런과정을 최적화한다던가, 이상한 단계를 거치는 경우가 많아서, 원하는대로 결과가 안나올 수 있어요.
토탈 스택을 줄여봐 금방죽어
우선 해볼게요
존나빨리뒈지는데 너는 왜 안죽디? - DCW
ㄴ모르겄네요 메인함수 재귀로 카운트 출력해보니 16만번쯤 호출돼야 죽네요
vs2015 윈10 64비트임
바로는 안죽고 stack 이 overflow되면 터짐. 간단하게 얘기해서 함수가 돌때마다 stack이 쌓이는데 무한 loop을 돌게되면 언젠간 overflow가 걸림
ㄴ근데 배열 크기를 1메가 훨씬 넘게 잡고 memset같은걸로 액세스했는데도 안터지던데 정상인가요?스택 예약 크기는 기본값이에요
음.. 저도 컴퓨터 구조 시간에 그렇게 배워서 그런걸로만 알고있었는데, 프로그램 언어에 따라 garbage를 처리하는 방식도 차이가 있겠고, 혹은 stack이 쌓이지 않을 수도 있지 않을까요?
어셈블리 할때 보면, 지역변수 할당하려고 esp를 밑으로 내린다음에 할당 시키잖아요, 그리고 마지막에 함수를 리턴할때 esp가 위로 당겨지니까, 결국 스택은 그대로가 되는건데, 똑똑한 컴파일러는 이런과정을 최적화한다던가, 이상한 단계를 거치는 경우가 많아서, 원하는대로 결과가 안나올 수 있어요.
최적화를 아예 안시켜 보던가 아니면 다른 방법으로 해보는게 나을듯 해요.
개뻔하게 주금