Ciao a tutti,
Uno dei miei compiti è fare l'analisi dell'affidabilità, in cui faccio uso di Fit Life di X.
In tal modo, ho due script JSL che emettono esattamente gli stessi risultati ma avere diversi approcci di codifica .
Il primo semplicemente usando la cascata del codice insieme. Lo pseudo codice è simile al seguente:
// 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
Il secondo ha un'unica funzione che chiamiamo ripetuta con colonne X, Y e censore diverse. Lo pseudo codice è simile al seguente:
// 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
Quello che ho sperimentato è che il secondo codice è molto più veloce del primo, nell'ordine di quasi 10 volte più veloce. (Il mio vero codice e i miei dati hanno il tempo dell'orologio da parete di ~ 17 secondi dal codice n. 2 rispetto a ~ 170 secondi dal codice n. 1)
Ho tre domande come segue:
1. Perché chiamare la funzione è molto più veloce che scrivere esplicitamente tutti i codici?
2. Quali sono altre pratiche/suggerimenti che dovrei generalmente fare per garantire che il mio codice abbia la complessità di tempo e/o spazio più efficiente?
3. Non sono sicuro che JSL abbia funzioni di temporizzazione integrate come l'ora della CPU e l'ora dell'orologio da parete? Ho cronometrato le esecuzioni del codice utilizzando la funzione today(). Ma comporta molta codifica manuale. Inoltre, i tempi trascorsi calcolati in questo modo sono sempre leggermente diversi a seconda che ci siano altre attività in esecuzione.
Grazie mille per il vostro aiuto.
Versione JMP: 17.0