여러 그래프를 생성하고, 각 그래프에 대한 회귀 적합도를 결정한 다음, 모든 회귀 계수를 표에 저장하는 스크립트를 작업 중입니다. 스크립트는 제가 원하는 작업을 수행하지만, 계산할 열 수가 늘어나면서 갑자기 중단됩니다. 스크립트는 For 루프 내에서 생성된 플롯과 생성된 패널을 백그라운드에 유지하는 것 같습니다. 루프 내에서 플롯을 닫으려고 해도 마찬가지입니다. (플롯을 저널(PDF 내보내기용)로 보내고 회귀 계수를 추출한 후에는 개별 그래프나 표의 상자 데이터가 필요하지 않습니다.)
디버거를 사용하여 스크립트를 단계별로 실행하면 스크립트가 끝까지 실행되고 개별 창이 표시되지 않지만, 디버거를 중지하면(빨간색 사각형) for 루프 내의 모든 개별 창이 생성됩니다. 스크립트는 600개가 넘는 열을 반복하고, 백그라운드에서 생성되는 해당 개수의 창(숨김으로 설정됨) 때문에 시간이 지남에 따라 jmp가 갑자기 중단됩니다.
스크립트를 사용하여 데이터 세트를 반복하여 분석을 수행하거나 여러 그래프를 생성할 때, 생성된 "중간" 창, 플롯 등을 닫아 메모리 부담을 최소화하는 가장 좋은 방법은 무엇입니까?
아래는 스크립트에서 열을 반복하는 부분입니다.
For( i = 7, i <=ncols, i++,
biv = dt << Bivariate(
Y(Column(colList[i]) ),
X( :Temperature ),
Fit Line( {Line Color( "Medium Dark Red" )} ), invisible);
rbiv = biv << Report;
biv << Close;
rbiv[Frame Box( 1 )] << Frame Size( 550, 400 );
rbiv << Page Break;
rbiv << Journal;
dtx= Report( biv )["Parameter Estimates"][Table Box( 1 )] << make combined data table;
// dty= Report( biv )["Lack Of Fit"][Table Box( 1 )] << make combined data table;
dtSlope << Concatenate(dtx ,"Append to first table");
// dtFit << Concatenate(dty ,dtSlope, "Append to first table");
// Close(dty, NoSave);
Close(dtx, NoSave);
);