[squeak-dev] squeak profiling

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] squeak profiling

Bert Freudenberg
On 20.04.2008, at 01:09, Riccardo Lucchese wrote:

> Hi!
>
>> Open transcript then do it on:
>>
>> 10 timesRepeat: [Transcript show: 1 tinyBenchmarks printString;cr]
> What I'm doing is:
> - run startsqueak
> - dragging a trasncript window from the tools bar to the 'desktop'
> - write the line you suggested me
> * wait for the magic, but nothing happens :)
>
> Shame on me... mm how do kids actually sort it out ? :)
>
> Thanks you for your help. I'd just like to see some numbers and than  
> shutup if
> I'm all wrong  with my initial assumptions.


Riccardo,

you posted to squeak-dev so we assumed you were familiar with Squeak.  
For beginner's questions we have a very friendly mailing list:

http://lists.squeakfoundation.org/mailman/listinfo/beginners

You should get somewhat accustomed to how to program in Squeak/
Smalltalk before digging into the virtual machine. If you had to  
improve the performance of a bash script, you wouldn't start with  
hacking the Linux kernel either, would you? ;-)

Anyway, we greatly appreciate help, in particular on the OLPC  
platform. Great to have a summer-of-code student on board! I am one of  
the core developers for the OLPC version of Etoys. We have an OLPC-
specific mailing list at

http://lists.laptop.org/listinfo/etoys

This list here is for general Squeak topics, there's nothing too hard  
to ask, the fine folks around actually like answering tough questions  
(just not the kind of very basic "what do I have to do to execute  
code" type questions). The virtual machine hackers have their own  
list, as most folks here are quite happy not having to deal with C  
anymore:

http://lists.squeakfoundation.org/mailman/listinfo/vm-dev

For general improvements I tried last week to compile a Geode-
optimized virtual machine using Rob Savoye's tool chain. It seemed to  
have worked but I saw no improvement at all. Maybe I did something  
wrong in installing his tools, though.

Most optimization possibilities I see are on the Smalltalk-level  
anyways. And it's possible to get quite some speed improvements there  
- like what Ties Stuij of OLE Nepal did, who is new to Squeak, too,  
and already improved project loading time quite a bit (granted, he was  
"initiated" by Luke Gorrie who had hands-on training be me - your best  
bet to get up-to-speed would be to find a Squeak hacker near you.  
Where are you located?)

On the VM-level I see some improvement possibilities in particular in  
drawing speed. We use a generic BitBlt implementation for everything.  
Rotated bitmap display ("WarpBlt") is taking quite some time on the XO  
due to its incredibly high-resolution display. 1200x900 pixels make a  
lot of bits to push around for the little Geode CPU. Recoding the  
inner WarpBlt loop in MMX for example could gain quite a lot, also the  
color-format conversion (Squeak is 5-5-5, the X server uses 5-6-5).

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] squeak profiling

Riccardo Lucchese
Dear Bert,

>  Anyway, we greatly appreciate help, in particular on the OLPC platform.
> Great to have a summer-of-code student on board! I am one of the core
> developers for the OLPC version of Etoys. We have an OLPC-specific mailing
> list at
>
>  http://lists.laptop.org/listinfo/etoys
subscribed :)

>  This list here is for general Squeak topics, there's nothing too hard to
> ask, the fine folks around actually like answering tough questions (just not
> the kind of very basic "what do I have to do to execute code" type
> questions). The virtual machine hackers have their own list, as most folks
> here are quite happy not having to deal with C anymore:
It's ok, they were very nice to me :). I just stopped posting as I was trying
to understand more of squeak/etoys before giving any feedback.


>  Most optimization possibilities I see are on the Smalltalk-level anyways.
> And it's possible to get quite some speed improvements there - like what
> Ties Stuij of OLE Nepal did, who is new to Squeak, too, and already improved
> project loading time quite a bit (granted, he was "initiated" by Luke Gorrie
> who had hands-on training be me - your best bet to get up-to-speed would be
> to find a Squeak hacker near you. Where are you located?)
I live near Venice in Italy.

>  On the VM-level I see some improvement possibilities in particular in
> drawing speed. We use a generic BitBlt implementation for everything.
> Rotated bitmap display ("WarpBlt") is taking quite some time on the XO due
> to its incredibly high-resolution display. 1200x900 pixels make a lot of
> bits to push around for the little Geode CPU. Recoding the inner WarpBlt
> loop in MMX for example could gain quite a lot, also the color-format
> conversion (Squeak is 5-5-5, the X server uses 5-6-5).
My main goal is profiling Sugar and I don't think that I'll be able to work
on the st part of squeak; will see :)

I'll mail you directly (hope it's ok) and stop the noise here :)

Riccardo

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] squeak profiling

Yoshiki Ohshima-2
  Hi, Riccardo,

  For OLPC Nepal, the backward compatibility from Squeak3.2 wouldn't
needed.  So, In ImageSegment>>comeFullyUpOnReload:, the part below can
be removed.

---------------------------------------
        arrayOfRoots do: [:importedObject |
                ((importedObject isMemberOf: WideString) or: [importedObject isMemberOf: WideSymbol]) ifTrue: [
                        importedObject mutateJISX0208StringToUnicode.
                        importedObject class = WideSymbol ifTrue: [
                                "self halt."
                                Symbol hasInterned: importedObject asString ifTrue: [:multiSymbol |
                                        multiSymbol == importedObject ifFalse: [
                                                importedObject becomeForward: multiSymbol.
                                        ].
                                ].
                        ].
                ].
                (importedObject isMemberOf: TTCFontSet) ifTrue: [
                        existing _ TTCFontSet familyName: importedObject familyName
                                                pointSize: importedObject pointSize. "supplies default"
                        existing == importedObject ifFalse: [importedObject becomeForward: existing].
                ].
        ].
---------------------------------------

  The real gain would come if we cut out inefficiency in
SmartRefStream around the class shape change and the nested structure
from DataStream.  Is there something we can primitivized around it?

  A simple entry point for profiling project loading would be
something like:

MessageTally spyOn: [ProjectLoading loadFromDir: '/usr/share/etoys/ExampleEtoys' projectName: 'DemonCastle1'].


  "Near Venice"... That almost made me want to fly there^^;

-- Yoshiki

At Mon, 21 Apr 2008 12:39:28 +0200,
Riccardo Lucchese wrote:

>
> Dear Bert,
>
> >  Anyway, we greatly appreciate help, in particular on the OLPC platform.
> > Great to have a summer-of-code student on board! I am one of the core
> > developers for the OLPC version of Etoys. We have an OLPC-specific mailing
> > list at
> >
> >  http://lists.laptop.org/listinfo/etoys
> subscribed :)
>
> >  This list here is for general Squeak topics, there's nothing too hard to
> > ask, the fine folks around actually like answering tough questions (just not
> > the kind of very basic "what do I have to do to execute code" type
> > questions). The virtual machine hackers have their own list, as most folks
> > here are quite happy not having to deal with C anymore:
> It's ok, they were very nice to me :). I just stopped posting as I was trying
> to understand more of squeak/etoys before giving any feedback.
>
>
> >  Most optimization possibilities I see are on the Smalltalk-level anyways.
> > And it's possible to get quite some speed improvements there - like what
> > Ties Stuij of OLE Nepal did, who is new to Squeak, too, and already improved
> > project loading time quite a bit (granted, he was "initiated" by Luke Gorrie
> > who had hands-on training be me - your best bet to get up-to-speed would be
> > to find a Squeak hacker near you. Where are you located?)
> I live near Venice in Italy.
>
> >  On the VM-level I see some improvement possibilities in particular in
> > drawing speed. We use a generic BitBlt implementation for everything.
> > Rotated bitmap display ("WarpBlt") is taking quite some time on the XO due
> > to its incredibly high-resolution display. 1200x900 pixels make a lot of
> > bits to push around for the little Geode CPU. Recoding the inner WarpBlt
> > loop in MMX for example could gain quite a lot, also the color-format
> > conversion (Squeak is 5-5-5, the X server uses 5-6-5).
> My main goal is profiling Sugar and I don't think that I'll be able to work
> on the st part of squeak; will see :)
>
> I'll mail you directly (hope it's ok) and stop the noise here :)
>
> Riccardo
>

12