<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Here's another profiler that's non-sampling. (It requires you to name the functions you want to meter.) Could be useful after the sampler points you in the right direction.<div><a href="https://bitbucket.org/svspire/ccl-metering">https://bitbucket.org/svspire/ccl-metering</a></div><div><br><div><div>On Apr 18, 2017, at 5:22 PM, R. Matthew Emerson wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br><blockquote type="cite">On Apr 18, 2017, at 3:46 PM, Gail Zacharias <<a href="mailto:gz@clozure.com">gz@clozure.com</a>> wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">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?<br></blockquote><br><a href="https://github.com/eugeneia/sam">https://github.com/eugeneia/sam</a> 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.<br><br><br><br><br><br><blockquote type="cite">On Tue, Apr 18, 2017 at 5:44 PM, Craig Lanning <<a href="mailto:craig.t.lanning@gmail.com">craig.t.lanning@gmail.com</a>> wrote:<br></blockquote><blockquote type="cite">I have been working on a rather large application that runs from the<br></blockquote><blockquote type="cite">command line. It reads schema files that are part of the ISO 10303<br></blockquote><blockquote type="cite">STEP family of product data standards. It can also read the<br></blockquote><blockquote type="cite">corresponding Product Data Population files.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Recently someone gave me a script that runs a schema comparison (using<br></blockquote><blockquote type="cite">my application) across several schemata. (In this case, the script<br></blockquote><blockquote type="cite">processed 17 schema pairs.) The act of processing one pair of schema<br></blockquote><blockquote type="cite">files will mean that additional schema files are pulled from a special<br></blockquote><blockquote type="cite">repository. The schema files being processed "include" other schema<br></blockquote><blockquote type="cite">files which also may "include" even more schema files.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I can build my application using LispWorks CL 6.1.1, Clozure CL v1.11,<br></blockquote><blockquote type="cite">and SBCL 1.3.16.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I can build with LispWorks CL 6.1.1 in 32-bit only.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I can build with Clozure CL 1.11 in both 32-bit and 64-bit.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I can build with SBCL 1.3.16 in 64-bit only. (No easy way to get both<br></blockquote><blockquote type="cite">the 32-bit and 64-bit versions at the same time.)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">The source code for my application is stored on SourceForge<br></blockquote><blockquote type="cite">(<a href="http://exp-engine.sourceforge.net/">http://exp-engine.sourceforge.net/</a>) as the original development was<br></blockquote><blockquote type="cite">intended to be an open source project.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> LWL 6.1.1(32) SBCL 1.3.16(64) CCL 1.11(32) CCL 1.11(64)<br></blockquote><blockquote type="cite">App Compile 10.323 sec 18.002 sec 10.242 sec 10.587 sec<br></blockquote><blockquote type="cite">App Deliver 4.306 sec 6.379 sec 1.418 sec 1.875 sec<br></blockquote><blockquote type="cite">App Filesize 37,429,248 57,409,584 24,719,376 33,460,464<br></blockquote><blockquote type="cite">17 schemata 8.320 sec 7.506 sec 23:49.054 23:44.190<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">The machine used was<br></blockquote><blockquote type="cite"> Dell Inspiron 3558 Laptop<br></blockquote><blockquote type="cite"> Intel Core i3 2.1GHz CPU<br></blockquote><blockquote type="cite"> 4GB Memory<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">As you can see in the chart above, CCL 1.11 took over 23 minutes to<br></blockquote><blockquote type="cite">process the 17 schema pairs. Not a good showing.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">This application does not allocate and deallocate large amounts of<br></blockquote><blockquote type="cite">memory so I have no information about which Lisp handles memory the<br></blockquote><blockquote type="cite">best. None of the Lisps tested ran out of memory.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">LispWorks and Clozure CL both start with a small amount of memory and <br></blockquote><blockquote type="cite">grow and shrink the dynamic space as needed so I suspect that they<br></blockquote><blockquote type="cite">handle memory the best.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">SBCL needs to be told what its maximum dynamic space size is. It then<br></blockquote><blockquote type="cite">allocates all of that memory.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">My purpose in posting this message was to give a reference for how<br></blockquote><blockquote type="cite">different Lisps support real applications.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I was curious about whether CCL's time has improved in successive<br></blockquote><blockquote type="cite">releases so I downloaded CCL 1.10 and 1.9. I was unable to run 1.9,<br></blockquote><blockquote type="cite">but was able to run 1.10. 1.11 produced a slower executable than 1.10.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Craig Lanning<br></blockquote>_______________________________________________<br>Openmcl-devel mailing list<br><a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>https://lists.clozure.com/mailman/listinfo/openmcl-devel<br></div></blockquote></div><br></div></body></html>