reduce memory for javadoc

Andrew Hughes gnu.andrew at redhat.com
Mon Apr 15 14:28:08 UTC 2013



----- Original Message -----
> Andrew,
> 
> I agree that any change would have to be tested on a variety of
> platforms.  Historically, the limit used to be 512m, but has crept up
> over recent times.  My investigations have been to understand
> why we have been forced to increase this number; as a result
> we found out that a memory leak was causing javadoc to retain
> references to the source code buffers for all the files it was reading.
> 
> Since javadoc is all Java code, it is reasonable to believe the problem,
> and the fix, would apply to all platforms, which is why I posted the
> update here.

Javadoc may be, but this is how much memory the VM should allocate and how it
works varies between platforms.  I know PowerPC, for example, has usually needed
a bigger maximum.

> 
> However, additional investigations show that the performance does suffer
> if we reduce the Xmx value. So the good news is that we can now reduce
> the value; the question is, do we want to?
> 
> FWIW, I'm still trying to understand why we need even 512m. But that will
> be another story.
> 
> -- Jon
> 
> On 04/11/2013 03:26 AM, Andrew Hughes wrote:
> > ----- Original Message -----
> >> Build folk,
> >>
> >> As a result of these two changesets now in tl/langtools, we can now
> >> reduce the memory requirements for javadoc in
> >> (root)common/makefiles/javadoc/Javadoc.gmk.
> >>
> >> changeset:   1678:3f3cc8d3f13c
> >> tag:         tip
> >> user:        jjg
> >> date:        Mon Apr 08 11:57:37 2013 -0700
> >> summary:     8011677: EndPosTables should avoid hidden references to
> >> Parser
> >>
> >> changeset:   1677:b402b93cbe38
> >> user:        jjg
> >> date:        Mon Apr 08 11:54:26 2013 -0700
> >> summary:     8011676: Instances of Tokens.Comment should not be defined
> >> in inner classes
> >>
> >>
> >> I have done builds with the memory limited to 512m, down from 1024m.  I
> >> did try further, with 384m, but that was too much of a reduction.
> >>
> >> $ hg diff
> >> diff -r 11c057460b91 common/makefiles/javadoc/Javadoc.gmk
> >> --- a/common/makefiles/javadoc/Javadoc.gmk    Fri Apr 05 14:49:54 2013
> >> -0700
> >> +++ b/common/makefiles/javadoc/Javadoc.gmk    Tue Apr 09 18:42:37 2013
> >> -0700
> >> @@ -47,7 +47,7 @@
> >>    BUILD_NUMBER=$(JDK_BUILD_NUMBER)
> >>
> >>    JAVADOC_CMD = $(JAVA) \
> >> -              -Xmx1024m \
> >> +              -Xmx512m \
> >>              -Djava.awt.headless=true \
> >>              $(NEW_JAVADOC) \
> >>              -bootclasspath $(JDK_OUTPUTDIR)/classes
> >>
> >> -- Jon
> >>
> > I'd be wary of changing this because, in my experience, it varies depending
> > on VM and architecture.  What was tested for these figures?
> 
> 

-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07




More information about the build-dev mailing list