Large array slows down Squeak

Raab, Andreas Andreas.Raab at disney.com
Tue May 30 18:21:05 UTC 2000


Stefan,

The garbage collector's tenuring policy doesn't take the size of an object
into account. It just counts the objects and will tenure them if there are
enough objects. That leads to the problem that a huge array will be seen as
a single object and therefore always kept in young space. The workaround is
to force a full garbage collection (e.g., Smalltalk garbageCollect) to make
all existing objects 'old'.

  - Andreas

> -----Original Message-----
> From: Stefan Matthias Aust [mailto:sma at baltic-online.de]
> Sent: Tuesday, May 30, 2000 6:52 AM
> To: squeak at cs.uiuc.edu
> Cc: recipient list not shown
> Subject: Large array slows down Squeak
> 
> 
> Hi,
> 
> I just noticed that an
> 
>   Array new: 10000000  "ten millions"
> 
> noticablely slows down Squeak (open it in an inspector or assign
> it to a global (or workspace) variable).  Actually, it's now nearly
> impossible to work with Squeak.  If I do a
> 
>   ByteArray new: 40000000
> 
> which should take the same amount of memory, no such effect occurs
> so I guess it's a garbage collector issue.  Right?  Is there a 
> workaround?
> 
> bye 
> -- 
> Stefan Matthias Aust             Projektleiter/Softwareentwicklung
> Baltic Online Computer GmbH,    Alter Markt 1-2,        24103 Kiel
> Fon: +49 (0) 431-54003-0 Fax: -99      http://www.baltic-online.de
> 





More information about the Squeak-dev mailing list