为什么本地应用程序的构建时间受网络影响?

时间:2013-04-04 13:08:30

标签: build xpages lotus-notes

包含多个JAR,Java源代码和~50个XP / CC元素的XPage应用程序的构建时间大约需要几分钟才能通过WAN在服务器上构建。我已将应用程序复制到本地,构建时间降至~10秒。

几天前,本地应用程序的构建速度非常慢,大约需要2-5分钟。经过一些实验后,有一种解决方法:在位置文档中禁用TCP端口 - 它将构建时间减少到几秒钟。即使它工作,也没有多大帮助 - 测试要求用户进行身份验证,因此我需要将设计更改复制到远程或本地服务器 - 这意味着每次都要更改位置(在线/离线)。

更新2013-04-04:我复制了当前的位置文档并删除了主目录服务器和目录服务器。令我惊讶的是,有了这个位置,构建时间又回到了几秒钟 - 启用了TCP端口,因此可以进行复制。更令人惊讶的是,将家庭/目录服务器返回到新位置并没有重现问题 - 实际上它们不会影响性能。我知道,因为我重命名当前位置文档,一切都恢复正常。根据我的理解,客户端配置中的“某些东西”已连接到位置名称。感谢Simon的提示,我将进一步调查。

问题仍然存在:我正在寻找控制此行为的一些(eclipse)偏好 - 在构建本地应用程序期间与服务器进行意外通信。

4 个答案:

答案 0 :(得分:4)

<强>解决方案: Teamstudio CIAO挂钩设计师并检查设计元素的每次更新。似乎缺乏对我的代码优化:它检查当前构建的设计元素(每一个,逐个)是否应该在CIAO配置数据库中进行控制。

这解释了为什么通过重命名位置文档来解决问题。昨天,当性能问题再次出现时我感到很失望。幸运的是,我回忆起关于那个时间的CIAO设置到该位置文档。 CIAO使用DATA目录中的teamstudio.ini文件来配置每个位置文档使用的CIAO配置数据库。寻找条目:

CIAOConfigDb[location name]=server name;CIAO\CIAOConfig.nsf

对于连接到服务器(用于复制或本地服务器)的本地副本的开发,请使用禁用CIAO的位置文档。

这仅适用于属性ForceConfigLocation=0

答案 1 :(得分:3)

不是解决方案(尚未!),但可能有助于调查。如果您稍后发布结果,我会进一步更新。

调试说明。

将以下内容添加到启动Designer客户端的快捷方式中。

-RPARAMS -console -debug -separateSysLogFiles -consoleLog

启动设计器客户端。这也将打开OSGi控制台。

重现问题。虽然它在OSGi控制台中仍在进行中,但请输入以下内容:

dump threads

这样做三次,每次转储完成之间的时间很短。完成后,在Heap Dump Analyser中打开三个堆转储(在IBM_TECHNICAL_SUPPORT文件夹中)。

它将显示所有三个转储中哪些线程是一致的。看看那些并查找可能看起来像功能区域的包名称/调用。完成后,您可以尝试为相关类添加调试。

例如:假设您注意到“com.ibm.designer.domino.ui.commons”。在该线程中,您将编辑rcpinstall.properties文件。它将在:

<Notes Install>\Data\workspace\.config\rcpinstall.properties

然后你会添加(以FINE开头,如果没有则为FINEST):

com.ibm.designer.domino.ui.commons.level=FINE

现在,当您重新启动设计器客户端时,它将在该包的workspace \ logs文件夹中生成调试输出。然后,您需要查看跟踪日志,查找延迟发生的时间,并查看是否对相关设计元素进行了任何引用。

答案 2 :(得分:2)

其他打开的应用程序可能会同时构建(这看起来像一个bug我)。务必关闭所有其他应用程序和基于服务器的副本。打开的应用程序将其图标显示在应用程序列表中,即使您关闭并重新打开Designer,它们也会保持打开状态。在Designer 9中右键单击应用程序并选择“关闭应用程序”。在8.5中,您需要使用Package Exprorer进行关闭。

另一个好方法是使用工作集。仅构建打开工作集中的应用程序(AFAIK)。只有这个应用程序的工作集(以及仅在此工作集中的应用程序)。

更新1

如果这些没有帮助,我会删除/重命名 bookmark.nsf Cache.NDK desktop8.ndk 。然后打开这个应用程序,看看会发生什么。

更新2

检查没有引用的项目。右键单击该应用程序,然后选择“项目属性”。从那里“项目参考”,并确保没有选中复选框。

更新3

根据您的更新,我会检查以位置文档中的$开头的项目名称。有时会保存IP地址等,这可能会导致此问题。所有这些项目都可以删除。

答案 3 :(得分:1)

如果可能(如果你还没有使用它)尝试使用Domino设计器的第9版(你不必使用Domino 9来实现它 - 它可以在Domino 8.5.3中正常工作)。

对于我们的项目,构建时间从几分钟开始下降到几秒钟。我猜他们终于在IBM注意到构建过程曾经大量中继连接到服务器并用它做了一些事情。 有了新设计师,你不必将事件复制到本地。您可以直接在本地服务器上工作。