Hola a todos,
Una de mis tareas es hacer el análisis de confiabilidad, en el cual lo hago usando Fit Life by X.
Al hacerlo, tengo dos scripts JSL que generan exactamente los mismos resultados pero tienen diferentes enfoques de codificación .
El primero simplemente usando la cascada del código juntos. El pseudocódigo se parece a lo siguiente:
// Plot Fit Life by X #1
Fit Life by X(...);
// Plot Fit Life by X #2
Fit Life by X(...);
// Plot Fit Life by X #3
Fit Life by X(...);
// And so on
El segundo tiene una sola función que llamamos repetido con diferentes columnas X, Y y censura. El pseudocódigo se parece a lo siguiente:
// Function that contains Fit Life by X
reli_analysis = function(
{input parameters},
{local variables},
Fit Life by X(...);
);
// Call the above function multiple times
reli_analysis(input parameters set #1);
reli_analysis(input parameters set #2);
reli_analysis(input parameters set #3);
// And so on
Lo que experimenté es que el segundo código es mucho más rápido que el primero, del orden de casi 10 veces más rápido. (Mi código real y mis datos tienen un tiempo de reloj de pared de ~17 segundos del Código n.º 2 frente a ~170 segundos del Código n.º 1)
Tengo tres preguntas de la siguiente manera:
1. ¿Por qué llamar a la función es mucho más rápido que escribir todos los códigos de forma explícita?
2. ¿Cuáles son otras prácticas/consejos que generalmente debo hacer para asegurarme de que mi código tenga la complejidad de tiempo y/o espacio más eficiente?
3. No estoy seguro de si JSL tiene funciones de temporización integradas, como la hora de la CPU y la hora del reloj de pared. Cronometré las ejecuciones del código usando la función today(). Pero implica mucha codificación manual. Además, los tiempos transcurridos calculados de esta manera siempre son ligeramente diferentes dependiendo de si hay otras tareas en ejecución.
Muchas gracias por tu ayuda.
Versión JMP: 17.0