A problem with standardTime:
Andreas Raab
Andreas.Raab at gmx.de
Tue Feb 19 13:39:38 UTC 2002
John,
I've been running into this problem at various times - turns out that
#standardTime: on any recent Windows machine will give you anything
_but_ standard conditions (due to swapping etc). The best thing you can
do is just ignore it ;-) With respect to #copySmartsRoot: you will
notice that there's an upper limit set for the initial size, so that
actually works quite well.
Cheers,
- Andreas
> -----Original Message-----
> From: squeak-dev-admin at lists.squeakfoundation.org
> [mailto:squeak-dev-admin at lists.squeakfoundation.org] On
> Behalf Of John M McIntosh
> Sent: Tuesday, February 19, 2002 2:41 AM
> To: squeak-dev at lists.squeakfoundation.org
> Subject: A problem with standardTime:
>
>
> standardTime: aBlock
> "Times the execution of aBlock in milliseconds, under the
> following standard conditions: exactly 10Mb of free space is
> available and compacted, and the recent VM statistics are reset
> immediately before execution."
> | spaceLeft tieDown |
> spaceLeft _ Smalltalk garbageCollect.
> spaceLeft < 1e7 ifTrue: [self error: 'not enough space for
> standard conditions'].
> tieDown _ ByteArray new: spaceLeft - 1e7. "Leave
> exactly 10MB free"
>
>
> Now the problem comes in when the VM can autosize, but the autosizing
> doesn't take Virtual Memory considerations into account. The
> Smalltalk garbageCollect
> returns the maximum size we can grow to, versus say a size that won't
> cause page swapping.
>
> So on my mac this returns
>
> 517759868
>
> As you can see we then run off and allocate 517759868 - 10000000.
>
> But on a machine that only *has* 512MB of memory, lots of things are
> paged out and a historically significant event called *page
> thrashing* occurs.
>
> Now I think Dan wrote this, and perhaps it needs to be rethinked.
>
> I'm not sure on unix machines you can really ask what the 'safe'
> limit it, after all the objective of VM operating systems is to allow
> you to run applications that don't fit into real memory boundaries.
>
> So I'll welcome a change set
>
> Also the max size is used in
> ImageSegment>>copySmartRootsExport: rootArray
> for some decision on characteristics of an algorithm to be run.
>
> --
> --
> ==============================================================
> =============
> John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
> Corporate Smalltalk Consulting Ltd.
> http://www.smalltalkconsulting.com
>
> ==============================================================
> =============
>
>
More information about the Squeak-dev
mailing list
|