Multithreading

Alan Knight knight at acm.org
Mon Mar 28 14:42:37 UTC 2005


The scenario you presented talks about 1000 transactions a day. That's one 
every minute and a half. They're probably not evenly distributed, and 
there'll be peak load periods, but say that amounts to one every five 
seconds. You still hardly need any threading. I don't work with Squeak, or 
with Seaside, but in VisualWorks, with a very similar threading model, 
trivial page displays start to be a performance issue once you get a couple 
of hundred per second. I note that Cincom also has ObjectStudio, a 
Windows-native Smalltalk that uses Windows threads. Things that work very 
well in VisualWorks using lots of threads will crash Windows very quickly 
using native threads.

The primary thing to be careful of is things that block the entire VM. So 
if you have a call out to a database, or another external system you want 
to make sure that other processes can run while it's in progress. You also 
may have the issue that with two CPU's, a single Squeak image can only 
effectively use one of them. This is less of an issue if you have other 
stuff running on the same box.

At 08:59 AM 3/28/2005, Daniel Salama wrote:
>Now, I presented a scenario of an application I wrote with Ruby On Rails 
>and described the working environment where that application is running. 
>My hope was that may be someone would have experience with Squeak/Seaside 
>with a similar type of application or application that operated under 
>similar conditions to comment how that behaves in Squeak/Seaside. As one 
>of my first projects I want to work with in Squeak/Seaside is the porting 
>of this application with all of its data. It's ambitious considering it to 
>be a "first" project, but that's just the way I find myself challenged to 
>do things. I just wouldn't want to go through all the effort to find out 
>at the end that it simply won't handle the volume (efficiently).
>
>Thanks,
>Daniel
>
>On Mar 28, 2005, at 3:22 AM, Avi Bryant wrote:
>
>>On Mon, 28 Mar 2005 00:05:52 -0500, Daniel Salama <dsalama at user.net> wrote:
>>
>>>As far as Seaside behavior in, I posted a similar question in Seaside's
>>>list
>>>(http://lists.squeakfoundation.org/pipermail/seaside/2005-March/
>>> >> 004685.html) but didn't really get an answer for it. I thank Avi for
>>>letting me know that Transcript>>show is just about the worst thing I
>>>could use to show status progress but no one really addressed my
>>>question about Seaside/Squeak/GOODS performance (even though it's all
>>>relative to application needs and application design).
>>
>>Daniel,
>>
>>Which question wasn't addressed?  My point was that you were basing
>>your concerns about performance on a flawed benchmark because of the
>>involvement of the Transcript.  I figured that if   you then did
>>further testing and were still concerned, you'd post with new details
>>and we could address it then.
>>
>>The operative phrase in your message seems to be "makes me just want to
>>not even try...".  When you're talking about performance, trying is
>>the only way to know anything.  In my experience, most assumptions
>>people make about the performance of the programs they write are
>>wrong, period.  Please, do some benchmarking before getting so
>>worried.
>>
>>Avi

--
Alan Knight [|], Cincom Smalltalk Development
knight at acm.org
aknight at cincom.com
http://www.cincom.com/smalltalk

"The Static Typing Philosophy: Make it fast. Make it right. Make it run." - 
Niall Ross




More information about the Squeak-dev mailing list