[Openmcl-devel] Lisp Comparison

Craig Lanning craig.t.lanning at gmail.com
Tue Apr 18 20:40:47 PDT 2017


On Tue, 2017-04-18 at 16:22 -0700, R. Matthew Emerson wrote:
> > 
> > On Apr 18, 2017, at 3:46 PM, Gail Zacharias <gz at clozure.com> wrote:
> > 
> > Well, clearly whatever your code is spending most of its time doing
> > is pretty slow in CCL.  In my experience when that kind of a huge
> > discrepancy occurs, it can be corrected (e.g. to bring
> > implementations to within an order of magnitude of each other)
> > fairly easily once you know what's causing it.  Do you have any
> > profiling results (from any of the implementations -- lispworks
> > might be the easiest) to indicate where you spend most time?
> 
> https://github.com/eugeneia/sam is a tiny and simple-minded profiler
> that might help for CCL. It should be able to provide an idea of
> where CCL is spending so much time.
> 

Thanks for this.  I'll see how I can use it with my code and send the
results to this list.

Craig Lanning

> 
> 
> 
> > 
> > On Tue, Apr 18, 2017 at 5:44 PM, Craig Lanning <craig.t.lanning at gma
> > il.com> wrote:
> > I have been working on a rather large application that runs from
> > the
> > command line.  It reads schema files that are part of the ISO 10303
> > STEP family of product data standards.  It can also read the
> > corresponding Product Data Population files.
> > 
> > Recently someone gave me a script that runs a schema comparison
> > (using
> > my application) across several schemata.  (In this case, the script
> > processed 17 schema pairs.) The act of processing one pair of
> > schema
> > files will mean that additional schema files are pulled from a
> > special
> > repository.  The schema files being processed "include" other
> > schema
> > files which also may "include" even more schema files.
> > 
> > I can build my application using LispWorks CL 6.1.1, Clozure CL
> > v1.11,
> > and SBCL 1.3.16.
> > 
> > I can build with LispWorks CL 6.1.1 in 32-bit only.
> > 
> > I can build with Clozure CL 1.11 in both 32-bit and 64-bit.
> > 
> > I can build with SBCL 1.3.16 in 64-bit only.  (No easy way to get
> > both
> > the 32-bit and 64-bit versions at the same time.)
> > 
> > The source code for my application is stored on SourceForge
> > (http://exp-engine.sourceforge.net/) as the original development
> > was
> > intended to be an open source project.
> > 
> >                LWL 6.1.1(32)   SBCL 1.3.16(64)   CCL 1.11(32)   CCL
> > 1.11(64)
> > App Compile    10.323 sec      18.002 sec        10.242
> > sec     10.587 sec
> > App Deliver     4.306 sec       6.379 sec         1.418
> > sec      1.875 sec
> > App
> > Filesize   37,429,248      57,409,584        24,719,376     33,460,
> > 464
> > 17 schemata     8.320 sec       7.506
> > sec         23:49.054      23:44.190
> > 
> > The machine used was
> >         Dell Inspiron 3558 Laptop
> >         Intel Core i3 2.1GHz CPU
> >         4GB Memory
> > 
> > As you can see in the chart above, CCL 1.11 took over 23 minutes to
> > process the 17 schema pairs.  Not a good showing.
> > 
> > This application does not allocate and deallocate large amounts of
> > memory so I have no information about which Lisp handles memory the
> > best.  None of the Lisps tested ran out of memory.
> > 
> > LispWorks and Clozure CL both start with a small amount of memory
> > and 
> > grow and shrink the dynamic space as needed so I suspect that they
> > handle memory the best.
> > 
> > SBCL needs to be told what its maximum dynamic space size is.  It
> > then
> > allocates all of that memory.
> > 
> > My purpose in posting this message was to give a reference for how
> > different Lisps support real applications.
> > 
> > I was curious about whether CCL's time has improved in successive
> > releases so I downloaded CCL 1.10 and 1.9.  I was unable to run
> > 1.9,
> > but was able to run 1.10.  1.11 produced a slower executable than
> > 1.10.
> > 
> > Craig Lanning



More information about the Openmcl-devel mailing list