This is the mail archive of the
mailing list for the Java project.
RE: 'Needed to allocate blacklisted block at 0x829d000' ?????
- To: "'Barnet Wagman'" <wagman at enteract dot com>
- Subject: RE: 'Needed to allocate blacklisted block at 0x829d000' ?????
- From: "Boehm, Hans" <hans_boehm at hp dot com>
- Date: Mon, 22 Jan 2001 17:33:09 -0800
- Cc: java-discuss at sources dot redhat dot com
I believe the intent is for a gcj program to be able to grab as much memory
as possible, at least by default. The collector is more or less capable of
that. In the current default configuration, things actually deteriorate a
little starting at a 64MB heap, and I believe there is a hard limit at
around 1.5GB for a 32 bit machine. At least the first of those numbers
should and could be significantly larger without much cost; I've just been
delinquent about updating them in the last few years, though I will soon.
You currently need to build with -DLARGE_CONFIG to increase those numbers.
Allocating 30K doubles means you need a contiguous 240KB. Under Linux/X86,
I believe that's usually not an issue, but for architectures with large
mostly empty stack frames, it might be. If it's a single array, the warning
is benign anyway, and I wouldn't worry about it either way.
Can you compile your program with -g and look at the result under gdb? It's
probably easiest to attach to the program after it hangs, and then look at
the stack trace. It would be really useful to see a stack trace.
> -----Original Message-----
> From: Barnet Wagman [mailto:email@example.com]
> Sent: Monday, January 22, 2001 4:14 PM
> Cc: firstname.lastname@example.org
> Subject: Re: 'Needed to allocate blacklisted block at 0x829d000' ?????
> I have an elementary question (which I probably should have
> asked first).
> Does a gcj compiled program have a maximum heap size, like
> the jvm (at least in
> the implementations I'm familiar with)? Or can it grab as
> much memory as is
> available? If the former, is there a way of setting that
> max, other than
> running compiled classes with gij? (I assume that using gij
> slows things down
> - is that correct?)
> If there is a fixed max (or initial value), how do I reset it?
> "Boehm, Hans" wrote:
> > As far as the warning message is concerned:
> > Are you allocating a large single-dimensional array?
> "Large" here should be
> > at least on the order of a 100,000 entries.
> My program allocates an array of around 30k doubles, not all
> that large. The
> program runs with the jvm with no problems. It's most likely
> that the problem
> has to do with how I'm using the gcj.