This is the mail archive of the
mailing list for the GCC project.
Re: Plans for Linux ELF "i686+" ABI ? Like SPARC V8+ ?
- From: Andi Kleen <andi at firstfloor dot org>
- To: Andrew Haley <aph-gcc at littlepinkcloud dot COM>
- Cc: darryl-mailinglists at netbauds dot net, gcc at gcc dot gnu dot org
- Date: Mon, 15 Oct 2007 14:49:49 +0200
- Subject: Re: Plans for Linux ELF "i686+" ABI ? Like SPARC V8+ ?
- References: <4712CE64.firstname.lastname@example.org> <email@example.com> <47135A83.firstname.lastname@example.org> <email@example.com>
Andrew Haley <aph-gcc@littlepinkcloud.COM> writes:
> Reading the gcc documentation would help you here. Section 3.17.13,
> Intel 386 and AMD x86-64 Options.
> > > This is amazing! There is no way that going from the ia32 to
> > > (presumably) the x86_64 small model should more than double
> > > memory consumption. Where has all that memory gone? I think
> > > some analysis of memory consumption is needed.
> > I presume all the memory is eaten up dealing with 64bit issues both
> > Mozilla (using XPCom) and Eclipse (running in a Java JVM) make
> > extensive use of pointers. Although Mozilla is a little harder for
> > me to measure comparatively but I've never gotten it over 1Gb
> > Resident Set Size (with no swap in use).
> That's interesting. I certainly have seen some increase in memory
> consumption goinf from 32-bit to 64-bit applications on x86_64, but
> the fact that in your case it more than doubles is come cause for
> concern. Even if pointers were 50% of the allocated memory pool,
> which is a pretty extreme assumption, that would only increase memory
> use by 50%.
Sometimes memory doublings are also seen from "long".
> In your case, however, memory use has increased by 150%.
> This needs explanation.
Maybe he is just mismeasuring it. e.g. text mappings like shared
libraries on x86-64 are padded out to 1MB because that is the ELF page
size. But the shared libraries don't actually need that much space.
Some tools get confused by this though.
Of course text mappings should normally also only be a smaller part
of his address space.
In general it is pretty complicated to measure real user space memory
in complicated applications accurately because it is difficult
to figure out which pages are shared between processes and which not.
But maybe several such measurement errors add up in this case.