[Openmcl-devel] Binary IO...
Jon S. Anthony
j-anthony at comcast.net
Mon Jun 8 07:41:22 PDT 2009
Hmmmm, forgot about the GC again (I suppose that is as much a good thing
as a bad thing - forgetting about it - or more exactly, what it does -
is sort of the point...)
I think your analysis is exactly right and the behavior pretty much
exactly what is needed in the absence of any "tuning". On the subject
of which -
On Sun, 2009-06-07 at 18:04 -0600, Gary Byers wrote:
> A stream's buffer is nailed down in foreign memory, so we can safely
> read from and write to it without worrying about the GC moving it
> around
...
> There are ways to inhibit the GC, obtain the (absolute, non-relocatable)
> address of the vector, and do I/O directly (bypassing the buffer). Whether
> that's better overall depends on what the cost of inhibiting the GC would
> be (which in turn depends on what kind of consing activitiy is going on
> in other threads.)
It is straight forward to "pin" a vector like this in ACL, when creating
it, by essentially telling the memory/GC machinery to just place it (on
creation) in an unmoving tenured area, and thereby be assured that the
GC won't be moving it. You don't need to "inhibit" the GC after it is
created (and pinned). At which point, you effectively have the "nailed
down vector", as you say. You indicate something like this is doable in
CCL, any info or pointers for that? I'm guessing (well, hoping) that
any GC inhibition here will only be upfront temporary as well.
Thanks again!
/Jon
More information about the Openmcl-devel
mailing list