[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