약 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문절로 다시 나누었는데도 에러가 나네요.
주문함수는 매수/매수청산/매도/매도청산 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문절로 다시 나누었는데도 에러가 나네요.