JMP 16-Automatisierung *viel* langsamer als JMP 15Details:
Ich sehe eine schlechte Automatisierungsleistung von JMP 16 im Vergleich zu JMP 15.
Im Vergleich zu JMP 15 (getestet 15.21)
Beispiel-C#-Code unten:
(C# .NetFramework) unter Verwendung der JMP.tbl-Referenz zur Automatisierung
Wichtige Codezeile: (Aus der C# JMP-Automatisierung)
jmpDT.NewColumn("MyData", JMP.colDataTypeConstants.dtTypeNumeric, 0, 8).SetDataVector(MyData);
Dadurch wird der JMP-Datentabelle eine Datenspalte aus einem Array (MyData) hinzugefügt.
Für JMP 16.2 dauert diese Zeile 2600 ms für ein Array von 20000 Werten
Bei JMP 15.21 dauert dies 18 ms
Eine 144-mal geringere Leistung! (es wird noch schlimmer, wenn die Arrays größer werden!) Meine Software verarbeitet oft Zeilen mit Millionen von Zeilen, das macht JMP 16 für die Automatisierung im Grunde unbrauchbar.
Beispiel-C#-Code:
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);
Hat sonst noch jemand dieses Problem gesehen und gibt es Workarounds, um JMP 16 zu „REPARIEREN“?
Qualitäts- und ProzesstechnikBetreff: JMP 16-Automatisierung *viel* langsamer als JMP 15Der technische Support für JMP-Hilfetickets hat das Leistungsproblem mit JMP 16 mit der folgenden Änderung am C#-Automatisierungscode gelöst.
Siehe unten:
.................................................... .........
Bitte versuchen Sie diesen Testcode in 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");
Dadurch wird JMP gezwungen, die ständige Aktualisierung der Tabelle zu umgehen, was die Verlangsamung verursacht.Wir haben eine Fehlerbehebung in JMP 17.1, aber Sie können die oben beschriebene Problemumgehung verwenden, um die langsame Leistung zu vermeiden, bis JMP 17.1 veröffentlicht wird.
Bitte teilen Sie mir mit, wenn Sie zusätzliche Hilfe benötigen.
Grüße,
David Matthews
Technischer JMP-Support