Tom,
On Sat, 17 Mar 2001 14:04:24 -0800 Tom tmb-squeak@lumo.com wrote:
-- I noticed that Squeak is taking up between 50-90% of the CPU even when I'm doing nothing. Is that the regular calls to the Morphic "step" methods? But even those are supposed to happen only once a second. Why does Squeak never rest? Is there some busy waiting going on there?
Squeak is supposed to be a better citizen that that, but problems have been observed on occasion. So, some questions:
- Is this 50-90% on a normal Squeak image that just started up or have you given it additional things to do? (Like starting a web server, doing something animated, etc). - Have you run a MessageTally? (World menu/debug menu/start MessageTally; answer yes; wait 10 or 20 seconds then move the mouse to the top of the screen to get the report). Paste a copy in your reply and it might offer some clues. - Have you turned on the preference #higherPerformance? This is for folks who *want* Squeak to use more cycles, so if you are concerned about cpu utilization, you may want to turn it off. - From the new morph menu/demo menu get a FrameRateMorph. What does it tell you about the frame rate? That's how often Squeak cycles through looking for morphs to step (which can be much more frequent than once per second). - You mentioned having used 2.x in addition to 3.0. Are you using the same VM for both? Which VM is that?
-- How much of these performance issues is related to running Squeak on the Linux platform? I checked with strace and ltrace. Sitting idly, it seems to be calling "gettimeofday" a lot, check with XPending regularly, and call "sin" and "modf" quite a bit. Expensive stuff like drawing only seems to happen when something actually changes. So, it looks to me like running it on Linux isn't the issue; but does it actually run faster on MacOS? Do I just need a 1GHz P4?
I think you'll find 300MHz gives decent performance once some of the issues in the previous section are resolved.
-- Squeak seems to be non-responsive during many network and name resolution operations. Is this a shortcoming of specific applications, or are there limitations in the Squeak implementation that make some network operations intrinsically blocking? This is pretty important for me for writing UIs that interact with the network.
If you run a name lookup, e.g., from the main UI process, then that process is blocked until the lookup completes or times out. For that reason, doing any serious amount of network stuff is often better done from a separate Squeak process.
-- General responsiveness in Morphic seems pretty sluggish. I would estimate that scrollbars take several hundred milliseconds to pop up after a click, windows take about a second to come to the front when clicked on. Deleting a pane in the Whisker browser takes about 2 seconds. (I also find it a bit confusing that while such operations are in progress, there is no feedback that anything is in progress.)
That seems quite a bit slower than it should be on your machine.
-- Plain MVC seems a lot faster; maybe I should be using it, although it seems much less convenient than Morphic and seems to lack features like drag-and-drop. But is MVC by itself still usable? Many of the windows that come up in MVC seem like they are actually Morphic windows. How would I creat an MVC-only image?
Look at the 'shrinking' category of messages in SystemDictionary. There are many parts of the system that can be deleted to create a leaner image.
Cheers, Bob
Hi,
thanks for the response. I was using a plain Squeak image, out of the box, from the FTP server. I compiled the VM myself (Squeak-3.0).
After experimenting a bit, it seems that much of the CPU usage was due to the SqueakLogo; it seems like it's a flash animation rather than just a little morph and uses a lot more resources than one might think. Removing it brought the CPU usage down to a few percent and doubled the frame rate. After getting rid of it, Squeak still has some delays in most places, but it's a lot more responsive.
It might be a good idea to go for a good "out of box" experience and either getting rid of SqueakLogo or replacing it with a more efficient implementation.
Your message and this mailing list have a number of useful suggestions (message tally, frame rate morph, etc.). I wonder whether one couldn't add them to the default image in another hypertext window similar to "Getting Started...". Or, maybe, one could even have a whole hypertext-based help system come with the image, with active links that open utilities and do other things when clicked on. Are there any hypertext-based help systems for Squeak (yes, I know that Scamper+Swiki could be considered something like that)?
If you run a name lookup, e.g., from the main UI process, then that process is blocked until the lookup completes or times out. For that reason, doing any serious amount of network stuff is often better done from a separate Squeak process.
That's good to hear. It sounds like the low level hooks are in place, it's just that some of the tools don't use it.
Cheers, Thomas.
On Saturday 17 March 2001 15:53, Tom wrote:
[snip]
I wonder whether one couldn't add them to the default image in another hypertext window similar to "Getting Started...". Or, maybe, one could even have a whole hypertext-based help system come with the image, with active links that open utilities and do other things when clicked on. Are there any hypertext-based help systems for Squeak (yes, I know that Scamper+Swiki could be considered something like that)?
Absolutely! And since you've just learned something valuable about performance, why not share it on a Swiki near you?
I keep thinking that I need to get out to the Swiki and share my discoveries with others... OK, I just updated http://minnow.cc.gatech.edu/squeak/1799 . I feel much better, thank you.
Are the Swikis growing? What needs to happen to make them more useful? It would be simple to provide quick access from Squeak to a meta-swiki search (like the translate and spell check choices already on the text menu). Would that be enough?
On Sat, 17 Mar 2001, Ned Konz wrote:
On Saturday 17 March 2001 15:53, Tom wrote:
[snip]
to "Getting Started...". Or, maybe, one could even have a whole hypertext-based help system come with the image, with active links that open utilities and do other things when clicked on. Are there any hypertext-based help systems for Squeak (yes, I know that Scamper+Swiki could be considered something like that)?
1) ComSwiki definitely needs to tune itself for Scamper (and vice versa). This is a little difficult given the generality of the format ComSwiki accepts (essentially, arbitrary HTML), but the Search, edit, etc. pages could be specialized easily (more on this below).
2) You can make hyperlinks of various sorts in arbitrary squeak text. Check out the class commetn for TextAttribute. (cmd-6 is the magic key, and there's a simple angle brack syntax for adding actions)
3) Not as handy for applications, but the Smalltalk system is well thought of, imho, as a superb hypertext/media system. One fantasy I have is reworking the tools so that not only Smalltalk source code and objects benefit from this.
[snip]
Are the Swikis growing? What needs to happen to make them more useful? It would be simple to provide quick access from Squeak to a meta-swiki search (like the translate and spell check choices already on the text menu). Would that be enough?
I think one important piece is WebDav like support so that we can make native Squeak tools first class Swiki editors. Another important piece is some sort of caching/mirroring/dare I say it "p2p" protocol for Swikis. Personal vs. collabortive (i.e., MySwiki notes, which I may or may not share some of, vs. my controbutions to the Swiki) Swiki notes would be nice.
I'll note that some of the SCAN/Gossip/Collage design seems applicable to more general info sharing.
Anyhoo, more on this sorta thing to come...
Cheers, Bijan Parsia.
[snip]
Are the Swikis growing? What needs to happen to make them more useful? It would be simple to provide quick access from Squeak to a meta-swiki search (like the translate and spell check choices already on the text
menu). Would
that be enough?
I think one important piece is WebDav like support so that we can make native Squeak tools first class Swiki editors. Another important piece is some sort of caching/mirroring/dare I say it "p2p" protocol for Swikis. Personal vs. collabortive (i.e., MySwiki notes, which I may or may not share some of, vs. my controbutions to the Swiki) Swiki notes would be nice.
I'll note that some of the SCAN/Gossip/Collage design seems applicable to more general info sharing.
Do you mean growing in popularity? I think so. The PWS list has 149 members, and when I do a search for "Swiki" on a search engine, I'm always finding new swikis out there. Here at Georgia Tech, it's also getting bigger. The central computing administration is now setting up a Swiki server so that we don't have to support every teacher who wants one. We're doing a lot of research on the Swikis -- published papers and TRs are at http://coweb.cc.gatech.edu/csl/Papers (and we've got some great new data that we're just writing up). And Je77's 1.0 ComSwiki release is due anyday now...
Mark
-------------------------- Mark Guzdial : Georgia Tech : College of Computing : Atlanta, GA 30332-0280 Associate Professor - Learning Sciences & Technologies. Collaborative Software Lab - http://coweb.cc.gatech.edu/csl/ (404) 894-5618 : Fax (404) 894-0673 : guzdial@cc.gatech.edu http://www.cc.gatech.edu/gvu/people/Faculty/Mark.Guzdial.html
squeak-dev@lists.squeakfoundation.org