有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我已经使用RhapsodyJavaAPI为我的Rhapsody项目创建了一个插件。我的问题是速度非常慢。我有以下功能:

    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) 个答案

  1. # 1 楼答案

    出于某种原因,Rhapsody加载项在内部Rhapsody虚拟机中运行时要快得多

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

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

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