|
From: John M M. <jo...@sm...> - 2004-04-07 02:46:20
|
On Apr 6, 2004, at 4:15 PM, Andreas Raab wrote:
>
>> With either approach you have the obvious issue of sandbarring. This
>> might not be considered a problem for big desktop machine with virtual
>> memory but it could be a major pain for PDAs and embedded systems.
>> Let's make sure we don't block anyone out.
>
> Sorry, didn't get this - what do you mean with "sandbarring"?
>
> Cheers,
> - Andreas
Sandbarring was an issue with mac os pre-x if you used Handles. Memory
that had double indirection so it could move on a compact memory space
event. The issue was that you could lock down memory and make it
unmoveable.
The problem was that after running a while it was possible then to
distribute randomly those locked down bits of memory in say 128MB, then
gee you want say 8MB contiguous? Nope I've got 48MB free, but the nasty
locked down pieces prevent the the allocation because of their
distribution you just don't have 8mb contiguous...
Like of a ship sliding on a sandbar and well it can be disaster...
This is less of an issue (by far) since you just allocate those bigger
object higher up in the 64 bit address space.
Mind I'm wondering here of the impact of having those unmoveable chunks
sitting there, versus have a header and the body elsewhere from the
hardware perspective since as we are busy sweeping we are scanning
memory linearly and hardware is attempting to prefetch data and then we
jump 64K away? Although I like the idea of not having a performance
issue if you say foo makeFixed or foo makeNotFixed
{Mind should this feature be on 32bit VMs?} Might need to offer both
ways?
========================================================================
===
John M. McIntosh <jo...@sm...> 1-800-477-2659
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
========================================================================
===
|