[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Recent questions about CLOS



    Date: Mon, 17 Sep 1990 11:24-0400
    From: David A. Moon <Moon@stony-brook.scrc.symbolics.com>

	Date: Fri, 14 Sep 1990 19:23 EDT
	From: John C. Mallery <jcma@REAGAN.AI.MIT.EDU>

	    Date: Fri, 14 Sep 1990 12:02-0400
	    From: Moon@stony-brook.scrc.symbolics.com (David A. Moon)

	    .....

	    I don't think the implementations now available are unusably slow.

	How would you compare the present performance of CLOS to flavors on the
	XL1200?  

    CLOS and Flavors perform about the same on Ivory-based machines (one can
    find examples that are faster in CLOS and other examples that are faster
    in Flavors, most things are the same speed).

Does this hold for ordered instance variables in flavors?

    So I'd expect both CLOS and Flavors to be 3 times as fast on the XL1200 as
    on the XL400; I don't happen to have the actual numbers at my fingertips
    to confirm that.  I'd expect the performance equality of CLOS and Flavors
    (for things that can be done in both) to remain the same in future
    Ivory-based machines.

		 What can we expect in the future?  

    CLOS on Ivory-based machines is pretty heavily optimized as far as speed
    goes.  I would expect any future additional optimization to be oriented
    towards improving virtual-memory locality rather than raw speed.

Would this mostly effect system code or would it page in user objects more
effectively?  

I recall that interlisp (and smalltalk) had some facilities for
object level paging.  Lenat's Eurisko used this feature in Interlisp.  I
wonder if it would make sense in CLOS, or would it just add undo overhead.

    However, I think this is really a "you tell me" situation.  Customers
    should let us know what their priorities are for CLOS.

Well, I use inline instance variables (:ordered-instance-variables
and :readable-instance-variables) for all important instance variables in
practically all the flavors I instantiate. This to gives me fast instance
variable lookup.  [Qobi recently timed this kind of IV lookup and found it to
be faster than defstruct.] I think this would increase my motivation to convert to
CLOS because it would eliminate the fear of taking a perfermance it.

Can I expect to see an equivalent in CLOS in Genera sometime?

Now that the XL1200 runs my NLP stuff so fast (10pages/minute), it seems that
the limiting factor is paging performance -- which seems perfectly reasonable
on the XL1200 but I have yet to try building really large KBs on it.  I
suspect running the same application in a lisp under UNIX will not yield the
non-problematic performance, due to, inter alia, the lack of areas in
common lisp, and a less effective paging strategy.

Could you briefly compare paging on the Lisp Machine to ITS to Unix?

I have some idea of why ITS is better than present UNIX implementations but I
don't know really why the lisp machine is better than ITS.  It seems that fast
processor could be meaningless if the operating system does not support
effective paging for large-scale applications.

    Flavors is already quite heavily optimized and I wouldn't expect to see
    any more work put into further improving Flavors.

	 Across lisp environments?

    Sorry, I can't figure out what this question is asking.

What problems and limitations would you anticipate for implementations in
Unix-embedded lisps?