在调试GWT应用程序时,Eclipse正在运行

时间:2012-07-02 16:39:09

标签: eclipse debugging gwt

我们正在使用JAVA GWT-P框架(版本2.4)开发我们的Web应用程序。我们使用Eclipse(版本3.7)Indigo作为开发GUI。在我们调试应用程序时,eclipse正在被绞死,而且令人惊讶的是这是一种随机行为。

这不仅仅发生在程序的一部分中。在我们调试的任何时候,Eclipse都会挂起不同的模块。

为了解决这个问题,我们尝试使用不同的操作系统,如Windows XP(开发gui:Eclipse版本3.7 Indigo),Fedora版本16(带开发gui:Eclipse版本Helios Service Release 2),Cent OS(带开发gui) :Eclipse版本Helios Service Release 2)。但没有运气。

任何人都可以帮我决定使用哪种操作系统,eclipse或版本,以便能够解决悬而未决的问题吗?

2 个答案:

答案 0 :(得分:1)

使用具有至少8G RAM,四核的机器进行GWT开发。任何低于此的东西都将是灾难性的和非生产性的。

理想情况下为8核,12 GB。

  • 在启动时增加你的eclipse jvm vm堆大小max。 默认的eclipse启动是256M或512M。它至少应该是768M。我试过1024M哪个 只有768M以上的边际差异。我发现900M似乎是 在我的案例中使用的最多。

  • 您可能还需要增加permgen内存分配。我认为 permgen空间用于存储类定义,永远不会 垃圾回收。我认为当我的月食无限期地悬挂时 是因为没有更多的permgen空间来存储新的类定义。

我从来没有必要为eclipse重新定义堆栈空间分配。

你可以谷歌找出jvm启动参数来定义内存分配。例如-Xmx等。

  • 最初只针对单个浏览器进行开发。决定使用FF 或Chrome作为您的开发浏览器。然后将您的入口点gwt.xml调整为 设置该浏览器的user-agent属性。谷歌在gwt上设置 属性用户代理。我发现,只编译一个浏览器, 加快编译速度。

  • 不要存储项目,源文件,资源或库 在网络或USB驱动器中由编译器访问。你的全部 可编辑/可包含的资源应该在您当地的驱动器上。

尝试使用maven或其他工具进行依赖关系管理,这样您就不需要通过网络访问您的jar或依赖项目。

  • 不要让你的发展战略滚下山坡 取决于实时项目依赖性。拥有50或更多的工作空间 项目是灾难,表示处于危机中的开发团队。 强制性和持久性编译,项目扫描 日蚀背景对日食的表现造成巨大损失。

  • 尝试尽可能多地禁用验证。例如,禁用html和 javascript验证。

如果你有大量的服务器端项目...... 您需要重新设计开发策略,将50-100个项目集中到项目包中,这样每个项目包的可编译/可验证项目成员不超过20个(理想情况下少于5个项目)。每个包都按版本冻结并打包为罐子。仅使用jar开发依赖项。

您的程序员需要学会不要在200个项目的工作区上工作。每个项目包的bugzillas都保留了增强功能。拥有200个项目工作区是糟糕的项目管理。通过让eclipse偶尔减速来浪费程序员的时间。

  • 有足够的临时空间(或Windows上有足够的空间) 用户磁盘)。我遇到了足够的磁盘空间 编译器缓冲/缓存导致了缓慢下降和挂起。有 一个5G的松弛空间是最小的 - 越多越好 排除必须清除垃圾或搜索要删除的文件或 清除GWT编译器生成的临时文件。 5G的松弛空间依然存在 非常不方便。

AFAI经历过,Windows 7 / vista或linux都没有太大的性能差异,只是eclipse似乎在Windows上启动速度慢得多。

  • 因此,如果您知道如何调整您的反病毒,可能是您应该的 告诉防病毒软件跳过扫描工作区和项目文件夹。

  • 除非你有一台8核的12GB机器,否则你应该禁用大部分的Windows 航空,trasparency。但是你需要保持窗口合成 (否则你会破坏你的视力看坏字体)。

答案 1 :(得分:1)

问题

我有一个GWT项目在我的旧core2机器上工作正常。当我最近获得一个新的核心i7,8GB内存(戴尔XPS Ubuntu开发人员版)时,我发现当我尝试通过单击“开发”下的浏览器链接开始调试时,Eclipse挂起非常紧张(大约90%的初创公司都挂起)模式“蚀视图。必须存在线程同步错误(死锁),只有当'时序与正常测试用例不同'时才会发生。这是一个时间错误死锁的事实,这就是为什么它看起来如此“随机”并且尚未被发现和修复。在我写这篇文章时,我有最新的GWT,以及最新的Eclipse等。

替代方案:

幸运的是,我发现如果我复制该链接并将其粘贴到已经启动的Firefox实例(在eclipse之外),那么永远不会有任何挂起。我100%肯定这不是我的代码中的问题。我95%肯定这是GWT发生的僵局。所以,不要点击“开发模式”链接,你会没事的。希望通过这篇文章帮助过某人。