如何阻止Eclipse上的JPA Facet一直更新?

Zds*_*Zds 22 eclipse performance jpa

我在Eclipse中有一个EJB2/EJB3 Java项目.我最近启用了JPA Facet,现在安装了Dali并配置了对包含实际表和数据的MySQL DB的访问.

问题是,在IDE Java编辑器中编辑实体bean变得慢了100-1000倍.写一个字,看状态栏上出现"更新JPA项目",高负荷等待30秒CPU,Eclipse完全没有响应,然后继续写下一个字.

使JPA变慢的项目是中等规模的,不仅仅是一个简单的网上商店,也不是企业级的.我统计了42个无状态会话豆和49个实体豆.我们实际上有更多的实体bean,但其中许多尚未转换为EJB 3,而是仅使用EJB 2.1进行映射.

最长的会话bean跨越20616行,最长的方法是头发低于2k行.

JPA的速度很慢,因此输入代码也很慢.在每5-10个字符之后,Eclipse完全停止几秒钟,内容辅助几乎无法使用,因为它会一直触发Eclipse的内部超时.

所以,问题是:如何为项目启用JPA Facet并仍然使其不落后于所有实际工作?一些简单的拨动开关,只是禁用JPA部分,然后重新启用将很可爱.

Jos*_*ino 21

我的一位朋友最近向我展示了一种在"Maven更新"操作后禁用常量"JPA Facet"更新的方法.

请尝试这个:在菜单窗口>>首选项>> Maven >> Java EE集成

  • 禁用"JPA Configurator"选项.

在此输入图像描述


Luk*_*der 7

我刚刚关闭了Eclipse的所有验证Preferences > Validation > suspend all validators:

没有验证

我不记得上次我需要验证,或者认为它首先是一个有用的功能.如果您想帮助整个团队,您还可以在每个项目的.settings/org.eclipse.wst.validation.prefs文件中签入以下文件:

DELEGATES_PREFERENCE=delegateValidatorList
USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.wsi.ui.internal.WSIMessageValidator;
USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationtrueversion1.2.600.v201501211647
eclipse.preferences.version=1
override=true
suspend=true
vf.version=3
Run Code Online (Sandbox Code Playgroud)

这具有相同的效果,但可以检入版本控制.

突然间,CPU散热器再次非常安静.


Kar*_*zke 5

在Juno,Dali项目已经进行了多项性能改进,可以帮助您解决问题.我们还进行了更改,将我们的一些工作推送到后台线程并使用Eclipse Jobs框架.

如果您仍然看到Juno的性能滞后,我将非常感谢您向我们发送一些性能分析信息.我可以尝试在我的工作中使用您的结果来提高性能(如果可能的话,在Juno SR1中).我使用jdk1.6.0_31中包含的Java VisualVM取得了成功.我将探查器CPU设置设置为'从类开始分析:'org.eclipse.jpt.**,取消选中'Profile new Runnables'和'Profile only classes:'org.eclipse.jpt.*.然后,您可以运行导致问题的一个用例,并将生成的快照附加到eclipse错误(WebTools-Dali Jpa工具).