JMP 16 の自動化は JMP 15 よりはるかに遅い詳細:
JMP 16 と JMP 15 の自動化パフォーマンスが低下しています。
JMP 15との比較(15.21でテスト済み)
下部のサンプル C# コード:
(C# .NetFramework) 自動化のための JMP.tbl 参照の使用
キーコード行: (C# JMP オートメーションから)
jmpDT.NewColumn("MyData", JMP.colDataTypeConstants.dtTypeNumeric, 0, 8).SetDataVector(MyData);
これは配列(MyData)からJMPデータテーブルにデータの列を追加します。
JMP 16.2では、この行は20000個の値の配列に対して2600ミリ秒かかります。
JMP 15.21では18ミリ秒かかる
パフォーマンスが 144 倍遅くなります! (配列が大きくなるにつれてさらに悪化します!) 私のソフトウェアは数百万行の行を処理することが多く、基本的に JMP 16 は自動化に使用できなくなります。
サンプル C# コード:
JMP.Application myJMP = new JMP.Application();
JMP.DataTable jmpDT;
myJMP.Visible = true;
jmpDT = myJMP.NewDataTable(TableName);
string command = "dts= DataTable(\""
+ TableName + "\");";
myJMP.RunCommand(command);
jmpDT.AddRows(20000, 0);
double[] MyData = new double[20000];
jmpDT.NewColumn("MyData", JMP.colDataTypeConstants.dtTypeNumeric, 0, 8).SetDataVector(MyData);
他にもこの問題を経験した人はいますか? JMP 16 を「修正」するための回避策はありますか?
品質およびプロセスエンジニアリングRe: JMP 16 の自動化は JMP 15 より *はるかに* 遅いJMP ヘルプ チケットの技術サポートは、C# 自動化コードに以下の変更を加えることで、JMP 16 のパフォーマンスの問題を解決しました。
下記参照:
................................................................... .........
JMP 16 で次のテスト コードを試してください。
JMP.Application myJMP = new JMP.Application();// myJMP.EnableInteractiveMode(true);
JMP.DataTable jmpDT;
myJMP.Visible = true;
jmpDT = myJMP.NewDataTable(TableName);
string command = "dts= DataTable("" + TableName + "");";
myJMP.RunCommand(command);
jmpDT.AddRows(20000, 0);
double[] MyData = new double[20000];
myJMP.RunCommand("dts << Begin Data Update");
jmpDT.NewColumn("MyData", JMP.colDataTypeConstants.dtTypeNumeric, 0, 8).SetDataVector(MyData);
myJMP.RunCommand("dts << End Data Update");
Notice the addition of :
myJMP.RunCommand("dts << Begin Data Update");
jmpDT.NewColumn("MyData", JMP.colDataTypeConstants.dtTypeNumeric, 0, 8).SetDataVector(MyData);
myJMP.RunCommand("dts << End Data Update");
これにより、JMP は常にテーブルの更新をバイパスし、速度低下の原因となります。JMP 17.1 で修正されていますが、JMP 17.1 がリリースされるまでは、上記の回避策を使用してパフォーマンスの低下を回避できます。
さらにサポートが必要な場合はお知らせください。
よろしく、
デイブ・マシューズ
JMPテクニカルサポート