やあみんな、
私のタスクの 1 つは、Fit Life by X を使用して信頼性分析を行うことです。
そうすることで、出力する2つのJSLスクリプトがありますまったく同じ結果しかし持っているさまざまなコーディング アプローチ.
最初のものは、コードを一緒にカスケードするだけです。 擬似コードは次のようになります。
// 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
2 番目の関数には、異なる X、Y、および censor 列で繰り返される 1 つの関数があります。 擬似コードは次のようになります。
// 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
私が経験したことは、2 番目のコードは最初のコードよりもはるかに高速で、ほぼ 10 倍高速であるということです。 (私の実際のコードとデータは、コード #2 では ~17 秒、コード #1 では ~170 秒のウォール クロック時間を持っています)
次のように 3 つの質問があります。
1. すべてのコードを明示的に記述するよりも、関数を呼び出す方がはるかに高速なのはなぜですか?
2.コードが最も効率的な時間および/またはスペースの複雑さを持つようにするために、一般的に行う必要がある他のプラクティス/ヒントは何ですか?
3. JSL に CPU 時間や壁時計時間などの組み込みのタイミング機能があるかどうかわかりません。 今日()関数を使用してコード実行の時間を計りました。 ただし、多くの手動コーディングが必要です。 また、このように計算された経過時間は、実行中の他のタスクがあるかどうかによって常にわずかに異なります。
手伝ってくれてどうもありがとう。
JMP バージョン: 17.0