[Newbies] Why Squeak is so sloooow?

Brad Fuller brad at sonaural.com
Fri Sep 22 03:21:31 UTC 2006


Brad Fuller wrote:
> Brad Fuller wrote:
>   
>> Yoshiki Ohshima wrote:
>>   
>>     
>>> Antonio,
>>>
>>> If you evaluate the following (and print-it):
>>>
>>> | a b |
>>> a := FloatArray new: (16 * 1024*1024).
>>> b := FloatArray new: (16 * 1024*1024).
>>> [a += b] timeToRun.
>>>
>>> you probably get a number around 100 or 200. This means that Squeak
>>> can add two 32-bit float arrays with 16M entries in 100 milliseconds
>>> or such. This is basicaly comparable Java-performance.
>>>     
>>>       
>> Ouch! I just did this (twice, just to make sure) in the 7058 imagine and
>> squeak bombed with the output below.
>> This was with the latest Linux 3.9 VM. I tried with the 3.7-7 VM and it
>> bombed too.
>> kernel: 2.6.16-1.2080.16.rrt.rhfc5.ccrma (realtime kernel from Stanford
>> - for audio)
>>   
>>     
> just a note to say that I tried it on kernel:
> 2.6.17-1.2174_FC5
> with no difference.... same problem.
> Anyone have an idea for this?
>   
Reducing the array size to something like:

| a b |
a := FloatArray new: (16 * 1024*500).
b := FloatArray new: (16 * 1024*500).
[a += b] timeToRun.

works fine.

the only thing I can think of is that I'm running out of total memory
(physical+swap). With my total physical memory of 512MB and swap of 1GB,
I would run out of memory with the original test case. If this is the
case, is there not a safe guard in Squeak to prevent this crash?

-- 
brad fuller







More information about the Squeak-dev mailing list