我们正在使用 JAVA GWT-P 框架(版本 2.4)开发我们的 Web 应用程序。我们使用 Eclipse(版本 3.7)Indigo 作为开发 GUI。当我们调试应用程序时,Eclipse 通常会挂起,令人惊讶的是,这是一种随机行为。
这种情况不仅仅发生在程序的一部分中。任何时候,当我们调试时,Eclipse 都会卡在不同的模块中。
为了解决这个问题,我们尝试使用不同的操作系统,例如Windows XP(开发GUI:Eclipse版本3.7 Indigo),Fedora Version 16(带开发GUI:Eclipse版本Helios Service Release 2),Cent OS(带开发GUI) :Eclipse 版本 Helios Service Release 2)。但运气不好。
任何人都可以帮我决定我们应该使用哪个操作系统、Eclipse 或版本,以便能够解决挂起的问题吗?
最佳答案
使用至少 8G RAM、四核的机器进行 GWT 开发。任何低于此的事情都将是灾难性的且毫无成效的。
理想情况下是 8 核、12 GB。
在启动时增加 Eclipse jvm 虚拟机堆大小最大值。 默认的eclipse启动是256M或512M。至少应该是768M。我试过1024M 仅比 768M 稍有差别。我发现900M好像是 在我的案例中使用最多的。
您可能还需要增加 Permgen 内存分配。我认为 permgen 空间用于存储类定义,并且永远不会 垃圾收集。我想当我的 eclipse 无限期地挂起时 当没有更多的永久代空间来存储新的类定义时。
我从来没有必要重新定义 Eclipse 的堆栈空间分配。
您可以通过 google 来查找用于定义内存分配的 jvm 启动参数。例如-Xmx等
最初仅针对单个浏览器进行开发。决定使用 FF 或 Chrome 作为您的开发浏览器。然后将入口点 gwt.xml 调整为 设置该浏览器的用户代理属性。谷歌在gwt上设置 属性用户代理。我发现仅针对一种浏览器进行编译, 大大加快了编译速度。
永远不要存储您的项目、源文件、资源或库 由编译器在网络或 USB 驱动器中访问。你所有的 可编译/可包含的资源应该位于您的本地驱动器上。
尝试使用maven或其他工具进行依赖管理,这样您就不需要通过网络访问您的jar或依赖项目。
永远不要让您的发展战略因 取决于实时项目的依赖关系。拥有 50 人或以上的工作空间 项目是灾难,意味着开发团队陷入危机。 强制和持久的编译、项目扫描 eclipse 背景对 eclipse 的性能造成巨大影响。
尝试禁用尽可能多的验证。例如,禁用 html 和 JavaScript 验证。
如果您有大量服务器端项目...... 您需要重新架构您的开发策略,将 50 - 100 个项目聚集到项目包中,以便每个项目包的可编译/可验证项目成员不超过 20 个(理想情况下少于 5 个项目)。每个包都按版本卡住并打包为 jar。仅使用 jar 进行开发依赖项。
您的程序员需要学会不要有在包含 200 个项目的工作空间上工作的冲动。增强功能是为每个项目包的 bugzilla 保留的。拥有 200 个项目工作空间是糟糕的项目管理。让 Eclipse 时不时变慢会浪费程序员的时间。
- 有足够的临时空间(或者对于 Windows,有足够的闲置空间) 用户磁盘)。我遇到过磁盘空间不足的情况 编译器缓冲/缓存导致速度变慢和挂起。拥有 5G 空闲空间是最小的——越多越好,以便 无需清除垃圾箱或搜索要删除的文件或 清除 GWT 编译器生成的临时文件。 5G仍有闲置空间 非常不方便。
根据 AFAI 的经验,Windows 7/Vista 或 Linux 都没有太大的性能差异,只是 Eclipse 在 Windows 上启动速度似乎慢得多。
因此,如果您知道如何调整您的防病毒软件,也许您应该 告诉防病毒软件跳过扫描工作区和项目文件夹。
除非您有 8 核 12GB 机器,否则您应该禁用大部分 Windows 空气动力学,透明度。但你需要保持 Windows 合成 (否则你会因为看到不好的字体而毁掉你的视力)。
关于调试 GWT 应用程序时 Eclipse 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297733/