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개 값의 배열에 대해 2600ms가 걸립니다.
JMP 15.21의 경우 18ms가 걸립니다.
성능이 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 기술 지원