Eclipse webtools project (WTP) 及其性能/质量

2022-08-31 19:38:36

我们公司从几年前就开始使用eclipse(自0.7版本以来,我们一直在使用WTP)

我目前正在用WTP 3.2.3评估eclipse 3.6.2,它应该用WTP 3.0.4取代eclipse 3.4.2,因为它是我们主要的IDE。

我不得不再次说,我对性能的担忧感到非常失望:
WTP 3.2.3似乎比3.0.4慢得多。
事实上,我真的很想知道为什么WTP随着每个版本而变慢。

我们的一个应用程序(动态Web项目)包含大约4000个java类和700个jsps / jsp片段。我们只需要基本的WTP功能来开发jsps,xmls和xsd。我们不需要像Dali(JPA工具真的应该被webtools项目覆盖吗?),Libra可视化xml编辑器这样的高度复杂的功能。

另一个有趣的点是,WTP似乎减慢了整个IDE的速度。SWT在几秒钟内没有响应,CPU使用率非常高(特别是在构建发生之后 - 如果你看一下系统作业,几个jsp / javascript索引器正在工作几分钟,即使所有WTP构建验证器都被禁用),打开新文件的速度较慢,在项目中导航等。

这在仅包含单个核心CPU的旧计算机上尤其明显。

最糟糕的是,我感觉WTP开发团队不太关心性能(例如,看看 http://wiki.eclipse.org/WTP_Performance_Tests 页面 - 上次更新发生在2008年)。

有关基本功能(例如.jsp编辑/验证)性能的错误报告和新闻组帖子通常会在一段时间后被忽略或关闭,例如:这里这里和这里

Quo vadis, WTP?


请不要误会我的意思:

我不想责怪WTP。
事实上,我相信WTP是由一个有才华的团队开发的一个很好的开源项目。
但显然,该项目在质量保证方面存在问题,特别是在影响可用性和用户接受度的性能方面。

我只想指出,团队应该首先关注对大多数用户至关重要的事情,然后致力于实现超级傻瓜功能。

我的问题

  • 您对 WTP 的体验如何,尤其是最新版本?
  • 你能证实或反驳我的观察吗?
  • 有更好的选择吗?
  • 您是否从 WTP 切换到 WTP,为什么?
  • 您是否有一些最佳实践来加快速度,特别是对于像我们这样的中高端企业?

更新

我想对这个问题进行更新,以反映当前的答案并总结当前的结果:

  • 许多用户或多或少地抱怨相同的问题,因此我认为这些问题已得到确认。
    顺便说一句,这个问题也在 theserverside.com 的新闻帖子中提到,并附有其他评论。

  • 负责WTP项目负责人nitind就WTP的现状发表了一篇值得注意的文章,我喜欢引用:
    “简单的事实是,我们没有花太多时间在性能测试上,因为我们缺乏这样做的资源。
    “当然,我们希望对此采取积极主动的态度,而不是被动反应,但我们倾向于首先将时间分配给功能问题。

因此,这个问题有点像社区给WTP团队的公开信:

Dear WTP team,

it's obvious that WTP is suffering from major quality/performance issues 
which you try to play down or to ignore.
Please invest some time to improve the current situation 
at the cost of new features and do everything what's required 
to solve the current problems.
E.g. revive the performance team, do some regression tests between 
previous releases or ask the community for (precise defined) help.

I am sure that they are enough people willing and able to help here.

If you like, do some kind of poll to get a feeling what should be 
the most important scopes of future's WTP releases.

Please, please, listen to your community.

答案 1

作为回应,我是在WTP中提供JSP,XML和JavaScript源代码编辑功能的项目的负责人。一个简单的事实是,我们没有花太多时间在性能测试上,因为我们缺乏这样做的资源。当然,我们希望积极主动,而不是被动反应,但我们倾向于首先将时间分配给功能问题。我们确实有一个采用者产品定期运行性能回归测试,但我预计测试现在已经在多核机器上运行 - 并且我们已经有一段时间没有向我们报告任何新的危险信号了。

在您链接到的3个错误中,2个早于您称赞的3.0.4版本,第三个是格式化性能问题(已解决)或特定于XML文件的按类型验证(修复该错误会触发Xerces,iirc中的内存泄漏,因此我们当时没有将其放入)。如果你有一个具体的项目,你可以附加到一个错误上,并说“做X在3.2乘以Y的量中更慢”,我们将尽我们所能找出哪里有回归。

至于索引器,它们至少应该最终完成。存储的磁盘信息在 WTP 版本之间已更改,需要重新处理这些文件,以便再次将它们包含在搜索和(已实现)重构操作中。初始索引编制完成后,它应该以增量方式运行,并且几乎不被注意到。您可能遇到的一个体系结构更改是,对于 JSP,需要在单个工作台会话中对整个工作区编制索引,以使该索引被视为“最新”。出于沮丧而关闭Eclipse只会延长这种再处理的影响。

听起来您公司的标准安装包括整个WTP,而不是滚动您自己的自定义发行版。我强烈建议您检查“启动和关闭”首选项页面,并关闭您不感兴趣的任何功能的早期启动。您提到的任何兴趣都没有利用该设施,但是WTP和平台的其他领域也是如此。任何你不感兴趣的验证都是验证首选项页面上的公平游戏,以及默认情况下在Web / JSP文件/验证首选项页面上验证JSP片段的设置。


答案 2

我们在WTP 3.2.3上也有同样的问题。我们也在我们的产品中使用它好几年了,但是我们的开发人员和客户对这个工具的接受度每年都在下降,因为在每个较新的版本中,它的速度越来越慢。

如果我可以禁用所有“高级”功能,我想使用它,但正如您所提到的,您根本无法禁用索引器。此外,如果 JSP 文件的验证程序已在运行,则无法停止它(如果您拥有如此多的文件,并且我们的项目中还有大约 1000 个 JSP 文件和许多标记文件,则可以对其进行测试)。

我也可以证明增加记忆力是没有帮助的。它只能防止整个日食的崩溃,但不会减少UI阻塞WTP的内部操作。

在最新版本3.2.3中,当我从服务器视图中启动Tomcat时,我遇到了很多挂起。UI挂起1 分钟。不仅是我有窍门,而且在Windows上工作的所有同事都有同样的问题。在Linux上,我不知道这个问题。

此外,当您无法访问互联网时,WTP中也存在问题。似乎有人要求一些注册表下载模式或类似的东西,如果你没有连接,那么它只是挂起并等待超时。