Re: 더 빠르게 실행되도록 루프를 최적화하세요.무엇을 하려고 하시나요?
Re: 더 빠르게 실행되도록 루프를 최적화하세요.당신은 디버거 내의 프로파일러 대부분의 시간을 어디에서 보내는지 결정하려면?
Re: 더 빠르게 실행되도록 루프를 최적화하세요.제가 취할 접근 방식은 다음과 같습니다.접근 방식을 더욱 명확하게 만들기 위해 코드를 단순화했습니다.내 시스템에서는 각 열이 2.25초 정도에 처리됩니다.
Names Default To Here( 1 );
dt = Current Data Table();
start = Tick Seconds();
dt << Clear Row States;
dt << Clear Column Selection();
dt << Clear Column Selection;
allcol = dt << get column names( string );
dt << select column group( "Tests" );
selcol = dt << get selected columns;
dt << Clear Column Selection();
// loop thru each test, mark and count fails
//new for each loop
For Each( {ii, index}, selcol,
loopstart=tick seconds();
If( ii << get data type == "Numeric",
// set up pareto columns
PassCol = New Column( "PassFail" || Char( index ), Numeric );
colspec = ii << get property( "spec limits" );
lsl = colspec["LSL"];
usl = colspec["USL"];
dt << select where( lsl >= ii <= usl );
PassCol[dt << get selected rows] = 1;
dt << invert row selection;
PassCol[dt << get selected rows] = 0;
);
show("loop " || char(index), tick seconds - loopstart);
);
show("total time= ", tick seconds()-start);Re: 더 빠르게 실행되도록 루프를 최적화하세요.@txnelson 고마워요 짐. 100만 행에 대해 귀하의 접근 방식을 시도했는데 약 3.5분이 걸렸습니다.

Re: 더 빠르게 실행되도록 루프를 최적화하세요.어느 시점에서 행렬 열과 행을 엉망으로 만들었을 가능성이 높지만 지금은 이를 수정할 시간이 없으며 제공된 것보다 더 큰 데이터 세트로 테스트되지 않았습니다.
Names Default To Here(1);
dt = Open("$DOWNLOADS/Sample table.jmp", invisible);
dt << Clear Row States;
dt << Clear Column Selection;
cols = dt << get column group("Tests");
test_cols = Transform Each({col}, cols, col << get name);
testcol_count = N Items(test_cols);
FUDDnum = Round(testcol_count * 0.17);
get_specs = Function({dt, colname}, {Default Local},
colspec = Column(dt, colname) << get property("Spec Limits");
specs = Associative Array();
specs["LSL"] = Try(colspec["LSL"], .);
specs["USL"] = Try(colspec["USL"], .);
return(specs);
);
// set up pareto columns
yielditer = dt << Get Table Variable("YieldIteration");
If(yielditer == "",
yield_iter_num = 1;
,
yield_iter_num = Num(yielditer) + 1;
);
dt << Set Table Variable("YieldIteration", yield_iter_num);
NumFail = dt << New Column("FailureNumber" || yielditer, Numeric, <<SET each="" value=""> specs["USL"]);
m[idx, fail_rows] = 1;
);
dt[0, NumFail << get name] = V Sum(m)`;
dt[0, PassCol << get name] = Not(V Sum(m)` > 0);
For Each Row(dt,
failcount = Column(dt, (NumFail << get name))[Row()];
If(failcount > FUDDnum,
ParetoCol[Row()] = "FUDD";
, failcount > 0,
fails = Loc(m[0, Row()]);
ParetoCol[Row()] = Concat items(test_cols[fails], ", ");
);
);
</SET>Re: 더 빠르게 실행되도록 루프를 최적화하세요.효과가 있어, Jarmo. 정말 감사합니다. 당신은 정말 대단해요 
더 빠르게 실행되도록 루프를 최적화하세요.안녕하세요,
새해 복 많이 받으세요!
처리 속도를 높이는 방법이 있나요?사용해 보았는데 각각 , 시간이 좀 절약되었습니다. 다음을 사용하여 최적화할 수 있는지 알아보려고 합니다. 열 수식
여기 내 for 루프가 있습니다. 100만 번 이상의 반복을 실행하는 데 매우 오랜 시간이 걸립니다. 어떤 충고?
For each();<BR />
감사해요.
자동화 및 스크립팅Re: 더 빠르게 실행되도록 루프를 최적화하세요.@jthi
각각