Newsgroups: comp.lang.dylan
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!xlink.net!news.ppp.de!news.Hanse.DE!wavehh.hanse.de!cracauer
From: cracauer@wavehh.hanse.de (Martin Cracauer)
Subject: Re: CLOS speed, was Re: The new paper and static binding in dylan
Message-ID: <1995Mar10.092059.28750@wavehh.hanse.de>
Organization: The Internet
References: <1995Mar7.101504.10062@wavehh.hanse.de> <9503072010.AA07340@services.cambridge.apple.com> <3jnmb4$qic@stc06.CTD.ORNL.GOV>
Date: Fri, 10 Mar 95 09:20:59 GMT
Lines: 29

mbk@.seas.ucla.edu (Kennel) writes:

>kanderso@BBN.COM wrote:

>> In the program's i've measured, CLOS dispatch accounts for 5 to 20% of the
>> program execution time (measured from several different phases of several
>> programs).  So, the performance advantage one would get from static
>> dispatch would be at most 20%.  These are typical object oriented programs
>> containing hundreds of classes and thousands of methods.

>Really?  What about a huge 2-d array of double precision
>IEEE floating point numbers. You want this to be
>N1*N2*8 consecutive bytes.

>Can do?

I *knew* I shouldn't have commented on CLOS speed here...

Anyway, yes, a good implementation can. My complain about Common Lisp
is that while you can reach C's speed when using low-level types like
float, int and char, I cannot reach C++'s speed with a CLOS program
that is designed as a collection of objects with similar behaviour and
design guidelines. Encapsulating basic types into CLOS objects is too
costly and I had to define some operations to be something other than
a generic function. I don't like this, it is bad design in my
opinion. Therefore I use Common Lisp only for isolated programs of
mine and a static language for class-library-based work.
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Private email Martin.Cracauer@wavehh.hanse.de Fax +4940 522 8536. No NeXTMail!
