Salut tout le monde,
L'une de mes tâches consiste à effectuer l'analyse de fiabilité, dans laquelle j'utilise Fit Life by X.
Ce faisant, j'ai deux scripts JSL qui sortent exactement les mêmes résultats mais avoir différentes approches de codage .
Le premier utilise simplement la cascade du code ensemble. Le pseudo-code ressemble à ceci :
// 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
Le second a une seule fonction que nous appelons répétée avec différentes colonnes X, Y et censeur. Le pseudo-code ressemble à ceci :
// 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
Ce que j'ai vécu, c'est que le deuxième code est beaucoup plus rapide que le premier, de l'ordre de près de 10 fois plus rapide. (Mon vrai code et mes données ont une horloge murale d'environ 17 secondes à partir du code n ° 2 contre environ 170 secondes à partir du code n ° 1)
J'ai trois questions comme suit:
1. Pourquoi appeler la fonction est beaucoup plus rapide que d'écrire explicitement tous les codes ?
2. Quelles sont les autres pratiques/conseils que je devrais généralement suivre pour m'assurer que mon code a la complexité temporelle et/ou spatiale la plus efficace ?
3. Je ne sais pas si JSL a des fonctions de synchronisation intégrées comme le temps CPU et l'heure de l'horloge murale ? J'ai chronométré les exécutions de code en utilisant la fonction today(). Mais cela implique beaucoup de codage manuel. De plus, les temps écoulés ainsi calculés sont toujours légèrement différents selon qu'il y a ou non d'autres tâches en cours d'exécution.
Je vous remercie beaucoup pour votre aide.
Version JMP : 17.0