Rhapsody插件Java API,执行速度极慢

时间:2014-09-04 12:08:22

标签: java eclipse-plugin 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()函数也非常慢。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

出于某种原因,在内部Rhapsody虚拟机中运行时,Rhapsody加载项运行得更快(更快)。

为此,将java编译为.jar并使用帮助文件配置模型,以将Rhapsody触发器(通常是工具菜单或上下文菜单选项)链接到jar。

以这种方式运行加载项使用常见的Rhapsody虚拟机并且速度更快,但要注意! java版本取决于您正在使用的Rhapsody版本的设置和名称冲突可能是一个问题(如果您有多个加载项,其中2个同名的类,Rhapsody将只加载一个)。

有关设置帮助文件的更多信息,请访问Andy Lapping(IBM员工)的网站here