Wednesday, October 27, 2010

Re: GWT Complier OutOfMemory issue

For a really large compile, you might want to supply more than 1G of memory. I would try upping your -Xmx.

On Tue, Oct 26, 2010 at 5:37 PM, Fernando <fsellecchia@gmail.com> wrote:
Hi:

I have the same problem compiling with GWT 2.0.4. My project has about
3500 classes.

Did you find any solution?

Thanks in advance.

The JVM parameters are:

-Xss32m -Xms32m -Xmx1024m -XX:MaxPermSize=256m

The StackTrace is:

---------------------------------------------------------------------------------------------------------------------------------------
java.lang.OutOfMemoryError
   at java.io.FileOutputStream.writeBytes(Native Method)
   at java.io.FileOutputStream.write(Unknown Source)
   at com.google.gwt.dev.util.Util.writeBytesToFile(Util.java:1153)
   at com.google.gwt.dev.util.Util.writeBytesToFile(Util.java:1138)
   at com.google.gwt.dev.javac.StandardGeneratorContext
$PendingResource.commit(StandardGeneratorContext.java:189)
   at
com.google.gwt.dev.javac.StandardGeneratorContext.commitResource(StandardGeneratorContext.java:
287)
   at
com.google.gwt.user.rebind.rpc.ProxyCreator.create(ProxyCreator.java:
293)
   at
com.google.gwt.user.rebind.rpc.ServiceInterfaceProxyGenerator.generate(ServiceInterfaceProxyGenerator.java:
57)
   at
com.google.gwt.dev.javac.StandardGeneratorContext.runGenerator(StandardGeneratorContext.java:
418)
   at
com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:
38)
   at com.google.gwt.dev.shell.StandardRebindOracle
$Rebinder.tryRebind(StandardRebindOracle.java:108)
   at com.google.gwt.dev.shell.StandardRebindOracle
$Rebinder.rebind(StandardRebindOracle.java:54)
   at
com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:
154)
   at
com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:
143)
   at com.google.gwt.dev.Precompile
$DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(Precompile.java:
317)
   at
com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRebinds(WebModeCompilerFrontEnd.java:
95)
   at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox
$CompilerImpl.process(AbstractCompiler.java:200)
   at
org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
   at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox
$CompilerImpl.compile(AbstractCompiler.java:123)
   at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox
$CompilerImpl.compile(AbstractCompiler.java:234)
   at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox
$CompilerImpl.access$200(AbstractCompiler.java:109)
   at
com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java:
522)
   at
com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUnitDeclarations(BasicWebModeCompiler.java:
112)
   at
com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDeclarations(WebModeCompilerFrontEnd.java:
47)
   at
com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:
430)
   at
com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:
32)
   at com.google.gwt.dev.Precompile.precompile(Precompile.java:522)
   at com.google.gwt.dev.Precompile.precompile(Precompile.java:414)
   at com.google.gwt.dev.Compiler.run(Compiler.java:201)
   at com.google.gwt.dev.Compiler$1.run(Compiler.java:152)
   at
com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:87)
   at
com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:
81)
   at com.google.gwt.dev.Compiler.main(Compiler.java:159)
  [ERROR] Out of memory; to increase the amount of memory, use the -
Xmx flag at startup (java -Xmx128M ...)
java.lang.OutOfMemoryError
--------------------------------------------------------------------------------------------------------------------------------------



On 5 oct, 12:14, Chris Conroy <con...@google.com> wrote:
> This doesn't address code-splitting per-se, but r8921 and r8850 reduce both
> DevMode and compiler memory footprint.
>
>
>
>
>
>
>
> On Sat, Sep 18, 2010 at 11:34 PM, lin.liang <birdandfis...@gmail.com> wrote:
> > Chris, I didn't see the OOME before using code splitting. In order to
> > reduce the application's startup time, I adopt code splitting in the
> > DynaClassGenerator.java (the implementation of GWT generator on data
> > deferred binding in our project)
>
> > 1) Before using code splitting, the code is:
> >    if
>
> > ("com.nantian.iwap3.frameworkdev.client.dataitem.DataItemMgr".equals(classN ame))
> > {
> >       ....
> >       com.nantian.iwap3.frameworkdev.client.dataitem.DataItemMgr
> > instance = new
>
> > com.nantian.iwap3.frameworkdev.client.dataitem.DataItemMgr();
> >       ....
> >    }
>
> > 2) After using code splitting:
> >      if
>
> > ("com.nantian.iwap3.frameworkdev.client.dataitem.DataItemMgr".equals(classN ame))
> > {
> >       ....
> >      GWT.runAsync(new RunAsyncCallbackAdapter() {
> >         public void onSuccess() {
> >            com.nantian.iwap3.frameworkdev.client.dataitem.DataItemMgr
> > instance = new
> > com.nantian.iwap3.frameworkdev.client.dataitem.DataItemMgr();
> >            callback.onSuccess((T)instance);
> >         }
> >      });
> >       ....
> >    }
>
> > In the former one, the complier work fine. However, in the second one,
> > the complie process was interrupted by the OOME.
> > P.S. It about 1,000 instances created by this way (e.g.
> > com.nantian.iwap3.frameworkdev.client.dataitem.DataItemMgr above).
>
> > On 9月17日, 下午11时00分, Chris Conroy <con...@google.com> wrote:
> > > That should be more than enough memory to run your compile. Do you have a
> > > stack trace for the OOME?
>
> > > FWIW, I have a pending change that should decrease the amount of memory
> > > needed to run a compile or DevMode.
>
> > > On Fri, Sep 17, 2010 at 7:19 AM, lin.liang <birdandfis...@gmail.com>
> > wrote:
> > > > The OutOfMemory exception always happen when the gwt project was
> > > > complied. The gwt project has 7 modules, and about 5,700 java files.
>
> > > > I have a look at gwt docs. It said that when the project became
> > > > bigger, the complier using the memory more too. However, I have set
> > > > the memory to 1.7G, it still report the OutOfMemory exception. Is this
> > > > the bug of gwt complier? How can I do to solve this issue?
>
> > > > I have no clue about this so far. Look forward your response. Thanks!
>
> > > > --
> > > > You received this message because you are subscribed to the Google
> > Groups
> > > > "Google Web Toolkit" group.
> > > > To post to this group, send email to
> > google-web-toolkit@googlegroups.com.
> > > > To unsubscribe from this group, send email to
> > > > google-web-toolkit+unsubscribe@googlegroups.com<google-web-toolkit%2Bunsubs cribe@googlegroups.com>
> > <google-web-toolkit%2Bunsubs-cribe@googlegroups.com<google-web-toolkit%252B unsubs-cribe@googlegroups.com>
>
> > > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/google-web-toolkit?hl=en.-隐藏被引用文字 -
>
> > > - 显示引用的文字 -

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.


--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment