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 自動化*比 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 技術支持