neeraj@demon.siemens.com (Neeraj Bhatnagar) (03/16/89)
I have recently been using Medley 1.0 release of the COMMON LISP environment from the ENVOS corporation. So far I have been very disappointed by the performance of the system. I tried the following function as a benchmark on ENVOS Common Lisp running on Sun 3/60 with 8Mbyte of RAM and on the CORAL Common Lisp (from the CORAL corpn. Cambridge, MA) on a MAC SE/30 with 4Mbyte of RAM: (defun counter() (setq x nil) ;list of 0 length (loop ;loop for ever (setq x (cons nil x)) ;increase length by 1 (if (eq (mod (length x 100)) 0) (print (length x))))) Here are the results: Envos Coral ----- ----- 200 1200 400 1800 600 2500 900 3300 1000 3600 1200 4400 1400 4800 1800 5900 2200 7100 2600 8700 3000 9400 3300 10300 4000 12400 4500 13900 5000 15300 5500 16600 (stopped) Above numbers should be read as follows: when Envos was printing 200/400/600/../5500 CORAL was printing 1200/1800/2500/../16600. I started both executions simultaneously. CORAL running on half the memory was thrice as fast as ENVOS. Both the MAC and the SUN were dedicated to the LISP programs and did not run any other program at that time. In the past I have seen that CORAL on MAC SE (older MAC) also outperforms ENVOS on SUN 3/60. I shall appreciate the reactions of the other users by Email or newsgroup. Neeraj neeraj@demon.siemens.com
welch@giza.cis.ohio-state.edu (Arun Welch) (03/17/89)
In article <7237@siemens.UUCP>, neeraj@demon.siemens.com (Neeraj Bhatnagar) writes: > > I have recently been using Medley 1.0 release of the > COMMON LISP environment from the ENVOS corporation. So far I have > been very disappointed by the performance of the system. > Well, for starters, you really ought to use some real benchmarks. While lisp has changed some since they first came out, out, the Gabriels are still the standard for lisp systems. On another front, the performance on the sun can be affected by a lot of things, which dont affect the Mac. For example, How many other processes were going on on the Sun? Did it have a local disk, or was it swapping across the net? Was the emulator and the vmem file on the local disk, or off on the net somewhere? How fast was the disk, if local? There are a bunch of other reasons why you're comparing apples and oranges, like how much time was spend in GC by the Sun (does Coral have a GC?), the fact that Coral runs only in core, while the Sun was using a virtual memory, etc. Also, realise that the Envos product is not running 'native' on the sun, but rather running an emulator of the Xerox dmachine microcode. Yup, this is gonna result in a bit of a performance hit. Numbers I'be heard are that a Sun 3/60 with 8M is ~ the speed of a dandelion, but there are so many variables that the number is pretty meaningless. I can come up with the timings on a Dove, but not from your benchmark (not having an SE with Coral to time it against). The other major difference, which can't be measured by any benchmarks, is the difference in environments. Unfortunately, there's no way to quantise a Lisp programming environment other than the fact that programmer A can produce more code on environment B than on environment C. What those of us working on the Envos platform enjoy is the rich environment, providing lots of tools for writing, debuging, and so on. I'll also admit that I'm biased. I happen to *like* the Envos environment. ...arun ---------------------------------------------------------------------------- Arun Welch Lisp Systems Programmer, Lab for AI Research, Ohio State University welch@tut.cis.ohio-state.edu
fischer@arisia.Xerox.COM (Ronald A. Fischer) (03/17/89)
You were comparing the *performance* of one lisp function run in both images, and then comparing the total size of each image. This doesn't seem quite the right way to do it. How about also looking at the size of the compiled function itself in both Lisps? As well as the memory usage. Speed versus space. Let's take a look at the bigger picture. ENVOS Lisp has taken a commercially difficult speed/space tradeoff. Its always easier to say you're faster than the competition on a few tightly constrained benchmarks, but what has the cost of this been? Ultimately it has caused the Lisp vendors to emphasize speed over all else. The result has been incredibly memory hungry implementations. Of course, hardware vendors love these sort of tendencies. By using a compiler that generates bytecodes at the bottm layer of the system ENVOS has a highly portable, but rather slow Lisp. Code size for any function is small, and remember that one of Lisp's major failings is its space use. ENVOS Lisp also uses CDR coding for lists, another speed slowdown that shrinks the size of the resulting memory image.r For some of the highly optimized native Lisps the code and data memory use is enormous. This affects swapping. For a large lexical analysis application that runs at Xerox PARC an experiment was performed: run the application in ENVOS Lisp and "another popular brand." The other Lisp compiled native machine code for the Sun 4. ENVOS Lisp was initially slower, but as the run continued for the three days that it normally takes to complete, the other lisp swapped itself to death (it crashed) and the ENVOS Lisp image ran to completion. As regards the size of the ENVOS Lisp image, again, bear in mind what's really in there. Most lisps are really just a runtime, an interpreter, a compiler, and a few trivial debugging tools. Lisp's vaunted prototyping ability has been more based on the language's traditional inclusion of an interpreter and its dynamic typing than any particular set of tools that are always provided. A few of the other lisps may have been around long enough to get an editor interface and maybe some good hooks into the operating system's window toolkit. ENVOS Lisp includes in its basic image such things as a window based structure editor that dynamically prettyprints code depending on window size, various proramming utilities including a system for tracking residential definitions, a window system, an operating system, a complete toolkit for building applications including a very clever grapher, remote debugging facility a la what the C people currently call a debugger, a *real* debugger with window interface, etc. There's alot of stuff in there which drives the size of the image up, but not because the compiled functions are enormous, rather because there's alot of functionality in there. You may also optionally load in our document editor (TEdit), Bitmap editor, structured graphics editor (Sketch) or applications like NoteCards or Rooms. ALL of these have programmer's interfaces as well so that they can be used to decreases application develpment time. ALL of these are also integrated tightly with one another using "imageobjects" a concept similar to what HP is now selling as "New Wave" and which Apple and Microsoft may someday get into their systems. All of this stuff originally came out of the clever folks at Xerox PARC, and its an amazing and very useful set of tools. I've also not touched on the basic problem that many highly optimized Lisps will now produce "unsafe" code, i.e. it will crash your Lisp image or worse operating system if simple errors occur. This has traditionally been another major Lisp advantage, one whose importance has been de-emphasized in the race for improved speed. ENVOS Lisp always produces "safe" code. Most other Lisps can too with appropriate compiler settings, but compare the resulting code size and speed under these settings too. Many checks are built into the ENVOS bytecode that will need to be explicitly coded otherwise. So, please be careful in how you benchmark. Consider size of the resulting function as well as its speed. Consider how "safe" the highly optimized code is. Consider the amont of memory needed to store your data. Consider how much shorter your development time might be with a better set of development tools or application toolkit. And finally, as a fellow Lisp developer, I wish you the best of luck in this volatile and small marketplace. (ron) Ron Fischer ENVOS Corp. Project Manager PS- These views are my own but are likely to be shared by others, I hope.
welty@steinmetz.ge.com (richard welty) (03/18/89)
In article <654@arisia.Xerox.COM>, Ronald A. Fischer writes:
*For a large lexical analysis application that runs at Xerox PARC an
*experiment was performed: run the application in ENVOS Lisp and
*"another popular brand." The other Lisp compiled native machine code
*for the Sun 4. ENVOS Lisp was initially slower, but as the run
*continued for the three days that it normally takes to complete, the
*other lisp swapped itself to death (it crashed) and the ENVOS Lisp
*image ran to completion.
while i have no special knowledge of the ENVOS System or of its
Xerox predecessors, i can confirm that oftimes benchmark-oriented
Common Lisps for stock hardware give the appearance of speed
on small jobs, and loose totally on large ones. We've been doing
some preliminary experiments with our model matcher, and have
discovered that while Lucid Common Lisp on the Sun appears to
be distinctly faster than our Symbolics 3600s at the start of
a job, when the jobs are very large Lucid runs into a brick
garbage collection wall, while in the specialized Symbolics
environment the job reaches completion without any special
fuss or bother (we are going to try and set up some carefully
controlled tests on price-comparable symbolics and sun systems
in the near future, following the philosophy that the best
benchmark is the program you are actually using on the data
you are actually using.) from Ron's description, i presume
that the situation is very similar for ENVOS.
as regards Ron's comments about environments, i agree totally.
we've found the tools provided with Lucid Common Lisp to be
inadequate for our purposes -- the lisp may be fast for small
jobs, but speed in execution isn't always an acceptable
substitute for quality tools. i'd much rather have a real
inspector, a good window debugger, and a tightly integrated editor
than 50% more execution speed, to tell you the truth. i get
more work done that way.
*PS- These views are my own but are likely to be shared by others, I
*hope.
by at least one other, i think.
richard
--
richard welty 518-387-6346, GE R&D, K1-5C39, Niskayuna, New York
welty@steinmetz.ge.com welty@crd.ge.com uunet!steinmetz!welty
``It is not GE Company Policy that P = NP'' -- Bob Mattheyses
plogan@mntgfx.mentor.com (Patrick Logan) (03/18/89)
In article <7237@siemens.UUCP> neeraj@demon.siemens.com (Neeraj Bhatnagar) writes:
=> Here are the results:
=>
=> Envos Coral
=> ----- -----
=>
=> 200 1200
=> 400 1800
=> 600 2500
=> 900 3300
=> 1000 3600
=> 1200 4400
=> 1400 4800
=> 1800 5900
=> 2200 7100
=> 2600 8700
=> 3000 9400
=> 3300 10300
=> 4000 12400
=> 4500 13900
=> 5000 15300
=> 5500 16600
=>
=> I shall appreciate the reactions of the other users by Email or
=> newsgroup.
6.0 4.5 4.1666665 3.6666667 3.6 3.6666667 3.4285715 3.2777777 3.2272727 3.3461537 3.1333334 3.121212 3.1 3.088889 3.06 3.0181818
Initial Reaction: Envos is gaining on Coral. Keep iterating.
--
Patrick Logan ...!{decwrl,sequent,tessi}!mntgfx!plogan
Mentor Graphics Corporation
Beaverton, Oregon
thorn@godot.radonc.unc.edu (Jesse Thorn) (03/22/89)
In article <654@arisia.Xerox.COM> Ronald A. Fischer writes about considering Lisp development environments when comparing/benchmarking different Lisp systems. >Consider how much shorter your development time >might be with a better set of development tools or application >toolkit. While I have never worked with ENVOS I did spend 4 years doing product development in InterLisp on Xerox D machines - the environment sounds identical. I can not overemphasize how valuable the development environment was to the development effort. These tools included the structure editor DEDIT, the object inspector, the D window system, the debugger package, SPY, MASTERSCOPE, CLISP, DWIM, LOOPS, etc, etc. The environment really helped to reduce development time and it allowed people to do rapid prototyping e.g. make massive exploratory code changes quickly. ( Refer to "Power Tools for Programmers" (?) by Beau Sheils onetime president of Xerox AIS (?). This magazine article describes the benefits of a rich development environment i.e. the D machine. It has appeared in _Datamation_ and several books on programming environments and user interfaces. ) I have since done product development in VAXLisp under VMS and Ultrix, PSL under Ultrix, and Golden Common Lisp under MS-DOS. They produce very fast code but when I last used them they had just about NIL in the way of development tools - vi/edt/emacs and what was called a "debugger". When moving to these Lisps it seemed that the first thing developers who were familiar with D machines or Symbolics boxes did was to write some basic tools that were missing in these environments (extensions to the debugger, xref utilities, performance timing utilities, a file package manager, etc). Not what you wanted to do when faced with deadlines. Project development slowed considerably due to the effort put into developing and maintaining the support tools as well as the relative lack of a supportive development environment. The environment IS the Lisp at least for development. In the best of worlds you would do development on your D machine equivalent and then port the finished code to your "fast" production machine. >I've also not touched on the basic problem that many highly optimized >Lisps will now produce "unsafe" code, i.e. it will crash your Lisp >image or worse operating system if simple errors occur. This has... This makes debugging extremely difficult. I have worked with "fast" Lisps that have had this problem. At one time a popular MS-DOS Lisp had a compiler bug that would produce code that trashed memory and initiated a perpetual GC. It took weeks to find the cause, and weeks to convince the vendor that there was a problem and get a patch. This all happened a few months before the product was to be shipped! A nostalgia for my old 1108 and that wonderful software from Xerox Parc has prompted this message. I now code in C on Unix systems - surely the Goths have invaded the temple... P.S Anyone from Bachman or Apex out there? Drop me a line. Jesse "It could be worse - It could be DOS" Thorn North Carolina Memorial Hospital Chapel Hill, NC UUCP: ...!mcnc!godot!thorn, INTERNET: thorn@godot.radonc.unc.edu
roberts@studguppy.lanl.gov (Doug &) (03/22/89)
The comments made regarding the sparseness of non-lispm development environments could have come from any of those of us in my group here at Los Alamos who in the last couple of years have switched from Symbolics' to Suns and Lucid lisp. We _REALLY_ missed the frame-based debugger & inspector, as well as the powerfull ZMACS editor. While Lucid 3.0 is an improvement over 2.1 it still has a long way to go before the development environment will compare to a Symbolics. The editor has greatly improved in 3.0, but the inspector and debugger still reek of the early 70's :-(... The sad fact is that most current-day lisp programmers have never worked on a lispm, and so they don't know what they're missing. --Doug -- =============================================================== Douglas Roberts Los Alamos National Laboratory Box 1663, MS F-602 Los Alamos, New Mexico 87545 (505)667-4569 dzzr@lanl.gov ===============================================================
mikel@apple.com (mikel evins) (03/22/89)
In article <654@arisia.Xerox.COM> fischer@arisia.Xerox.COM (Ronald A. Fischer) writes: > Consider how much shorter your development time > might be with a better set of development tools or application > toolkit. I won't claim that Allegro CL on the Mac has the richness of a Symbolics or Xerox Lisp machine; I've had my hands on a Symbolics and on TI machines (though, regrettably, not a Xerox), and I know something of what I'm missing. I will say, though, that, for a personal computer, or microcomputer, Allegro is a very nice programming environment. Yes, it has gc, it has a nice windowing debugger with a view of the execution stack, and inspectors for all kinds of variables, including system variables not visible in most Mac programming environments; it is very well integrated with the Mac interface toolbox. In short, for a personal computer (as opposed to workstation) implementation, it's pretty nice, and real fast, and quite robust, so far as I've seen so far, though not yet a match for Lisp machines. Just thought I'd put in a good word for the underdog. (I hope the identity of my employer won't bias readers with regard to my integrity; I liked Allegro CL a long time before I had any idea Apple was going to buy Coral).
mkent@dewey.soe.berkeley.edu (Marty Kent) (03/22/89)
In article <1003@internal.Apple.COM> mikel@apple.com (mikel evins) writes: >missing. I will say, though, that, for a personal computer, or >microcomputer, Allegro is a very nice programming environment. Yes, it has >gc, it has a nice windowing debugger with a view of the execution stack, >and inspectors for all kinds of variables, including system variables not >visible in most Mac programming environments; it is very well integrated >with the Mac interface toolbox. First, I'm speaking from the perspective of a long-time Interlisp programmer (5 years or so). I've been programming with Allegro for about a year. I sure would like to see something like an end to all this BULLSHIT about what a wonderful programming environment Allegro provides. It has a half-baked set of buggy tools. So the debugger has -windows-! It has a lot less power and flexibility than the debugger from Franz Lisp circa 1981. The inspector doesn't allow you to set the values of variables, only to look at them, and it crashes the machine quite regularly with system divide-by-zero errors. The stepper bombs if you try to step into a CASE form. There's no profiler. There are no lexical analysis tools. The editor is a text editor, not a structure editor (of course some folks will argue in favor of this, but I've found structure editors superior for modifying (if not "typing in") lisp code). There's a reason I'm more than a little ticked off about all these lacks in the Allegro environment: about a year ago I spoke with the president of Coral and gave him a little pitch about developing some of these missing links and he told me "this is -LISP- Why should we pay you to develop these tools when the user community will develop them for free?" Who was it that used to say "The quality goes in before the name goes on"... Marty Kent Sixth Sense Research and Development 415/642 0288 415/548 9129 MKent@dewey.soe.berkeley.edu {uwvax, decvax, inhp4}!ucbvax!mkent%dewey.soe.berkeley.edu Kent's heuristic: Look for it first where you'd most like to find it.