Adding loop primitives/optimizations
Marcus Denker
denker at iam.unibe.ch
Fri Dec 3 08:50:51 UTC 2004
>> I'd
>> guess that my System today is faster then the Jit based one of 2001.
>>
>
> These are tested on the same system?
No. 2001 it was a 450PowerMacG4, Today: PowerBook1.5Ghz.
> I'm not sure I can agree with anyone
> hinting that any beneficial change is not worth it. If there was a 0.1%
> speedup for the entire system achievable with 20 hours of Smalltalk
> coding,
> I would still do it. (Though, at that small amount, you are optimising
> the
> wrong thing! Or, there is nothing else left to optimise =)
But you need to keep complexity Vs. benefit in a good relation. If we
get
in the end only 2times speedup with J3, but J3 turns out not to be not
maintainable by the community, we have a problem.
And it turned out that this happened: J3 was there, but it was not
picked
up by the community. It's not a trvial piece of software. From my part,
it
was more like "hundreds of hours of C coding" then 20 hours of
Smalltalk...
Debugging dynamically generated machine code is an interesting
experience,
though. Especially on MacOS9.
Am 03.12.2004 um 02:41 schrieb Lyndon Tremblay:
>>
>>> This is because Squeak was carefully optimized to run primitives most
>>> of the time.
>>> And then, as Tim pointed out, even if the Jit can optimize the code
>>> to
>>> run in zero
>>> seconds, you will only see the perfomance doubled when the system
>>> spends 50%
>>> of the time in the primitives.
>>>
>
> Ahh, I understand. Are most of these Interpreter primitives? I'll be
> naive
> and think from the historical documents that ObjectMemory,
> Interpreter, and
> BitBlt are the main 'primitive objects' for the VM itself.
>
Lots of other stuff: There are primitives for LargeInts, Sound,
FloatArrays...lots
of stuff.
>>> Speaking about runtime compilers for Squeak, there are two other
>>> projects: Exupery by Bruce Kampjes, a
>>> runtime translator that is written in Squeak, not C++. This is on
>>> SqueakMap. Bruce has reported
>>> some good speedup already.
>
> Unfortunately for Win32 builders, it does require 'struct foo' for
> it's VM
> changes. I can again look into the VM here when I get a decent custom
> build
> worth comparing with the official - I will probably actually use
> Exupery for
> my project.
>
I may be mistaken, but I don't think that Exupery is in a state that
would make
using it for a project would make sense.
Have you thought about analysing your application for hot-spots and
code those
as a plugin?
[AOStA]
> Oh, what does this mean? No projects or application where its benefits
> and
> changes prove completely useful? I am still highly interested in the
> optimisation of Squeak.
>
That it never got to a point were it actually did run the image, or did
real optimizations...
It's an experiment, and not yet (likely never) finished. Nobody is
working on it right now, I think.
Marcus
More information about the Squeak-dev
mailing list
|