2014-09-04 1 views
0

Rhapsody Java API를 사용하여 내 rhapsody 프로젝트 용 플러그인을 만들었습니다. 내 문제는 매우 느리다는 것이다. 나는 다음과 같은 기능을 가지고있다 :Rhapsody 플러그인 Java API, 매우 느린 실행

private static void collectElements(final IRPModelElement curEl, 
     final IRPCollection elCol) { 
    // collect contained elements 
    for (Object it : curEl.getNestedElements().toList()) { 
     IRPModelElement element = (IRPModelElement) it; 
     if (!skipElement(element)) { 
      // add element itself 
      elCol.addItem(element); 

      // descend 
      collectElements(element, elCol); 
     } 
    } 
} 

선택된 요소의 모든 중첩 요소를 수집한다. 내 프로젝트에는 약 7500 개의 요소가 있으며 위의 기능을 수행하는 데 22 초가 걸립니다. selectedElement.getNestedElementsRecursive()으로 모든 요소를 ​​가져오고 List 또는 HashSet에서 작업하려고했지만 .toList() 함수도 매우 느립니다. 어떠한 제안?

+0

프로젝트를 여는 중 "모든 하위 단위로"+ "주문형으로로드"하시겠습니까? – Centimane

답변

0

Rhapsody 추가 기능은 내부 Rhapsody 가상 컴퓨터에서 실행할 때 훨씬 빠르게 실행됩니다.

이렇게하려면 java를 .jar로 컴파일하고 helper 파일로 모델을 구성하여 Rhapsody 트리거 (일반적으로 도구 메뉴 또는 컨텍스트 메뉴 옵션)를 jar에 연결하십시오.

이 방법으로 추가 기능을 실행하면 일반적인 Rhapsody 가상 컴퓨터를 사용하지만 속도는 더 빨라집니다. Java 버전은 사용중인 Rhapsody 버전이 무엇인지에 따라 달라지며 이름 충돌은 문제가 될 수 있습니다 (동일한 이름의 클래스가 두 개인 클래스가 여러 개인 경우 Rhapsody는 하나만로드합니다).

도우미 파일 설정에 대한 자세한 내용은 Andy Lapping (IBM 직원) 웹 사이트 here에서 확인할 수 있습니다.