Detalles:
Veo un rendimiento de automatización deficiente entre JMP 16 y JMP 15.
Comparado con JMP 15 (probado 15.21)
Ejemplo de código C# en la parte inferior:
(C# .NetFramework) uso de la referencia JMP.tbl para automatización
Línea de código clave: (de automatización JMP de C#)
jmpDT.NewColumn("MyData", JMP.colDataTypeConstants.dtTypeNumeric, 0, 8).SetDataVector(MyData);
Esto agrega una columna de datos a la tabla de datos JMP desde una matriz (MyData)
Para JMP 16.2, esta línea tarda 2600 ms para una matriz de 20000 valores.
Para JMP 15.21 esto tarda 18 ms.
¡Una pérdida de rendimiento de 144 veces más lento! (¡Y se pone aún peor a medida que las matrices se hacen más grandes!) Mi software a menudo trabaja con filas de millones de líneas, lo que básicamente hace que JMP 16 sea inutilizable para la automatización.
Ejemplo de código 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);
¿Alguien más ha visto este problema? ¿Alguna solución alternativa para "REPARAR" JMP 16?
El soporte técnico del ticket de ayuda de JMP resolvió el problema de rendimiento con JMP 16, con la siguiente modificación del código de automatización de C#.
Vea abajo:
.................................................... .........
Pruebe este código de prueba en 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");
Esto obligará a JMP a omitir la actualización constante de la tabla, lo que provoca la ralentización.Tenemos una solución en JMP 17.1, pero puede usar el trabajo anterior para evitar el rendimiento lento hasta que se publique JMP 17.1.
Por favor, hágamelo saber si necesita ayuda adicional.
Saludos,
david matthews
Soporte técnico JMP