Hola comunidad JMP,
Últimamente, estuve buscando mejorar el rendimiento de mis scripts JSL internos y encontré los siguientes problemas de rendimiento que me gustaría abordar.
Tomemos el siguiente script (JMP 17.2 PRO ejecutándose en macOS):
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);
);
);En algunos de mis scripts estoy usando cuadros de lista que se actualizan dinámicamente. Para cambiar el contenido de los cuadros de lista utilizo las funciones << remove() y << append() , funcionan bien pero me temo que este método no escala muy bien con el número de filas, otra parte que sorprendentemente funciona muy lento es el bucle for con << set selected(), aparentemente este es el único método que pude encontrar para seleccionar todos los elementos en un cuadro de lista, pero escala terriblemente con el número de filas.
Mi pregunta es si existe alguna forma más conocida de actualizar el contenido de los cuadros de lista que no sea lenta en cuanto al rendimiento. Estoy buscando posibles alternativas que harían:
- Método óptimo para configurar el contenido del cuadro de lista.
- forma rápida de seleccionar todos los elementos del cuadro de lista.
Cualquier comentario o sugerencia será muy apreciada.