macroBenchmarks and HDD failure
John M McIntosh
johnmci at smalltalkconsulting.com
Tue Nov 19 22:23:03 UTC 2002
On Tuesday, November 19, 2002, at 02:01 PM, Stephen Pair wrote:
> On Friday night I executed "Smalltalk macroBenchmarks" on a 3.2 stock
> image
> and left it to run. Saturday morning I see the dredded Win2k blue
> screen of
> death. I reboot to find that my HDD is choking and sputtering to a
> slow
> death.
Mmm I think the problem is here
SystemDictionary>>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"
tieDown _ tieDown.
Utilities vmStatisticsReportString. "To reset statistics"
Smalltalk garbageCollectMost. "To clear that garbage"
^ Time millisecondsToRun: aBlock
On VM's that support growing/shrinking, aka windows this wee bit of
ancient code see ByteArray new: spaceLeft - 1e7
causes I believe the windows VM to allocate about 1GB of memory. Gee
don't have 1GB of real ram about plus
stuff for the operating system, & other things, then we'll test how
good your VM routines are...
Bet we'll also init to zero and perhaps acquire a GB of disk space, if
not more for swapping.
Well I think it's a GB, let's see
/* Here, we only reserve the maximum memory to be used
It will later be committed during actual access */
maxReserved = 1*1024*1024*1024;
/* Ugh. Note. Some people really *are* crazy...
... as if 512MB wouldn't be enough, no sir...
... so we give you all we have (1GB) ...
... except a bit for the C allocator ...
*/
maxReserved -= 128*1024*1024;
do {
pageBase = VirtualAlloc(NULL,maxReserved,MEM_RESERVE,
PAGE_NOACCESS);
Well almost a GB, assuming windows will allow that on your box with
256MB of reall memory, which I'm sure will *spin* the hard drive
til it dies or something... Or in your case visiting the BSOD. Maybe
you ran out of disk space too?
Really we should change this and drop the fake memory allocation
because it's no longer a viable thing to do.
========================================================================
===
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
|