1

最近,我将开发环境从 Java 6 升级到 Java 8。在编译期间(超过 4,000 个源文件),我在使用 Java 8 编译时遇到了 OutOfMemory 错误。为了解决这个问题,我不得不增加我的 ANT javac 任务memoryMaximumSize 属性值从 512m 到 1024m。

在使用任务管理器检查流程时,我可以看到为什么需要上述更改。编译进程内存利用率从大约 480 MB 增加到大约 960 MB。我有点犹豫是否盲目地实施这个改变。所以,我想知道:

为什么这个改变是必要的?

使用更多内存的 Java 8 编译器是否发生了变化?

是不是旧的 ANTLR 在与 Java 8 一起使用时效率低下?(这是我相信的)

我的环境:

  • Java 8u66(32 位)
  • 视窗 8
  • 日食火星(32 位)
  • ANTLR 2.7.7

如果您想知道为什么是 32 位,我们有一些 32 位的旧版 DLL(目前)无法替换。

4

0 回答 0