커뮤니티

중첩if문절 분리작업하여도 여전히 같은 에러가 나네요

프로필 이미지
캐빈이야
2010-09-19 10:19:39
1839
글번호 204141
답변완료
약 8000라인의 if문절 한개를 48개로 쪼개서 만들었는데도, 여전히 똑같은 문제가 발생합니다. if () then {} <-- 각각의 안에는 최대 4개의 중첩if문이 있습니다 하지만 라인수로는 평균 150라인정도입니다. (주석이 좀 있습니다. ) if () then {} if () then {} if () then {} if () then {} ...... 제생각으로는 하나의 시스템 로직안에 수행할 메모리문제가 아닐까 하네요 사용하지 않지만. 선언된 배열도 제거하고, 안쓰는 모든 변수를 정리했는데도 불구하고 같은 에러가 난다는 것은 참 아이러니 합니다. 48개로 분리된 if문절중 한개를 주석처리하면 컴파일도 HTS도 잘 동작합니다. 그래서 주석처리한 if문절을 활성화 시키고 5개의 if문절로 다시 나누었는데도 에러가 나네요.
기타
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2010-09-28 10:11:28

안녕하세요? 예스스탁입니다. 여러가지 상황을 판단해 보았는데, if 중첩문의 문제는 아닌것 같습니다. 사용하신 식에서 buy, sell, exitlong, exitshort 갯수가 많다면 그것이 문제가 될 수 있다고 생각합니다. 주문 함수를 몇 개 정도 사용하셨는지 확인을 부탁드리겠습니다. 만일 주문함수를 그렇게 많이 사용하지 않았다면(수백 개 이내) 다른 문제이므로 저희 예스스탁으로 다시한번 연락을 부탁드리겠습니다. 감사합니다. > 캐빈이야 님이 쓴 글입니다. > 제목 : 중첩if문절 분리작업하여도 여전히 같은 에러가 나네요 > 약 8000라인의 if문절 한개를 48개로 쪼개서 만들었는데도, 여전히 똑같은 문제가 발생합니다. if () then {} <-- 각각의 안에는 최대 4개의 중첩if문이 있습니다 하지만 라인수로는 평균 150라인정도입니다. (주석이 좀 있습니다. ) if () then {} if () then {} if () then {} if () then {} ...... 제생각으로는 하나의 시스템 로직안에 수행할 메모리문제가 아닐까 하네요 사용하지 않지만. 선언된 배열도 제거하고, 안쓰는 모든 변수를 정리했는데도 불구하고 같은 에러가 난다는 것은 참 아이러니 합니다. 48개로 분리된 if문절중 한개를 주석처리하면 컴파일도 HTS도 잘 동작합니다. 그래서 주석처리한 if문절을 활성화 시키고 5개의 if문절로 다시 나누었는데도 에러가 나네요.
프로필 이미지

캐빈이야

2010-09-28 12:35:15

주문함수는 매수/매수청산/매도/매도청산 1개씩 사용합니다. 중첩if문 마다 주문함수가 존재하는 것이 아니라.. 중첩if문 결과를 가지고 주문하는것이라서 주문함수문제는 아닙니다. ------주문함수내용--------- buy("선물매수진입",onclose,DEF,매매수량); ExitLong("선물매수청산",DEF,DEF,"선물매수진입",1); Sell("선물매도진입",onclose,DEF,매매수량); ExitShort("선물매도청산",DEF,DEF,"선물매도진입",1); 전에 답변드렸듯이 중첩if문 8000라인짜리를 48개로 쪼개고 테스트를 하여도 여전히 에러가 발생되는것을 확인하였습니다. 그리고 딱한개의if문을 추가했을때 에러가 발생되는것도 확인했구요. 제가 사용하는 if문은 간단히 비교만해서 true /false만 반환하는것이라서 if문 안에서의 루프가 존재하지 않습니다. 문제가 발생하는 if문을 그대로 두고 정상동작하는 if문을 주석처리하면 잘됩니다. 그래서 제 생각에는 메모리 문제가 아닐까 하네요.. ---------------------------------------------- 제가 48개로 쪼갠 if문중 라인수가 큰것들을 사용자함수로 만들었더니 정상적으로 동작합니다. 옮기는작업이 꽤 불편하지만. 그런대로... 동작하는데 문제가 없어 보입니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 중첩if문절 분리작업하여도 여전히 같은 에러가 나네요 > 안녕하세요? 예스스탁입니다. 여러가지 상황을 판단해 보았는데, if 중첩문의 문제는 아닌것 같습니다. 사용하신 식에서 buy, sell, exitlong, exitshort 갯수가 많다면 그것이 문제가 될 수 있다고 생각합니다. 주문 함수를 몇 개 정도 사용하셨는지 확인을 부탁드리겠습니다. 만일 주문함수를 그렇게 많이 사용하지 않았다면(수백 개 이내) 다른 문제이므로 저희 예스스탁으로 다시한번 연락을 부탁드리겠습니다. 감사합니다. > 캐빈이야 님이 쓴 글입니다. > 제목 : 중첩if문절 분리작업하여도 여전히 같은 에러가 나네요 > 약 8000라인의 if문절 한개를 48개로 쪼개서 만들었는데도, 여전히 똑같은 문제가 발생합니다. if () then {} <-- 각각의 안에는 최대 4개의 중첩if문이 있습니다 하지만 라인수로는 평균 150라인정도입니다. (주석이 좀 있습니다. ) if () then {} if () then {} if () then {} if () then {} ...... 제생각으로는 하나의 시스템 로직안에 수행할 메모리문제가 아닐까 하네요 사용하지 않지만. 선언된 배열도 제거하고, 안쓰는 모든 변수를 정리했는데도 불구하고 같은 에러가 난다는 것은 참 아이러니 합니다. 48개로 분리된 if문절중 한개를 주석처리하면 컴파일도 HTS도 잘 동작합니다. 그래서 주석처리한 if문절을 활성화 시키고 5개의 if문절로 다시 나누었는데도 에러가 나네요.