JMP 社群您好,
最近,我正在研究提高內部 JSL 腳本的效能,並發現了以下我想解決的效能問題。
讓我們使用以下腳本(在 macOS 上運行的 JMP 17.2 PRO):
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
values = Column( dt, 1 )[dt << get rows where( Excluded( Row State() ) != 1 )];
new window("test",
lb = list box( values, nlines(10), width(100), ),
b = button box("reset", reset_lb),
);
reset_lb = expr(
lb << remove all();
lb << append(values);
Nnames = N Items(values);
for(i = 1, i <= Nnames, i++,
lb << set selected(i);
);
);在我的一些腳本中,我使用動態更新的列錶框。為了更改列錶框的內容,我使用<和<函數,它們工作得很好,但我擔心這種方法不能很好地隨行數縮放,這是令人驚訝的另一部分運行速度非常慢的是帶有<< set selected() 的 for 循環,顯然這是我能找到的用於選擇列錶框中所有項目的唯一方法,但它會隨著行數的變化而急劇變化。
我的問題是是否有任何已知的方法來更新列錶框的內容,並且效能不會降低。我正在尋找可能的替代方案:
- 設定列錶框內容的最佳方法。
- 選擇列錶框中所有項目的快速方法。
任何反饋或建議將不勝感激。