<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Juan Jose Garcia-Ripoll wrote:
<blockquote
cite="mid:c159f9ab0910291559x17d9f044oedbc37fcc1f1f074@mail.gmail.com"
type="cite">
<pre wrap="">On Thu, Oct 29, 2009 at 11:39 PM, Ram Krishnan <a class="moz-txt-link-rfc2396E" href="mailto:kriyative@gmail.com"><kriyative@gmail.com></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="">In my particular app environment, I'm embedding ECL into an existing top
level `main()' which is where I'm calling cl_boot(), which subsequently
calls init_lib_LSP(). In addition, I'm also loading another library of
compiled FFI functions, with its own init_lib_* initializer. And all this is
running on an embedded ARM processor, which isn't too bad performance wise,
but doesn't compare to any desktop processors.
</pre>
</blockquote>
<pre wrap=""><!---->
It would be nice to really get a more detailed profiling of which
functions take most of the boot time. It may well be that the time is
consumed by memory allocation, and in this case using an
externalizable format will not help, for objects will have to be
allocated at some point.
</pre>
</blockquote>
I've attached some of the profiler output with this followup.<br>
<blockquote
cite="mid:c159f9ab0910291559x17d9f044oedbc37fcc1f1f074@mail.gmail.com"
type="cite">
<pre wrap="">
OTOH, there may be some performance penalties, for instance, in how we
are currently reconstructing the CLOS class tree and methods. That
could be significantly sped by externalization, saving us a lot of
calls to initialization and construction methods, and similar stuff.
</pre>
</blockquote>
There are some calls to `L1convert_one_class', `clos_ensure_class', and
`clos_install_method' which pop out in the list. So, the CLOS
class/methods reconstruction angle may be right on.<br>
<blockquote
cite="mid:c159f9ab0910291559x17d9f044oedbc37fcc1f1f074@mail.gmail.com"
type="cite">
<pre wrap=""></pre>
<blockquote type="cite">
<pre wrap="">Anyway, the pointer to the "externalize" branch is much appreciated
</pre>
</blockquote>
<pre wrap=""><!---->
Beware that this is really old code and may be out of date. You will
get most information comparing the diff of that branch with its
immediate predecessor, for that will show you the C code for
externalizing data and how it was used in the compiler. In any case, I
believe it would be interesting to rescue this code as black-box
functions (object -> binary array and viceversa) that can be reused in
other contexts (compilation, dumping data, etc).
Juanjo
</pre>
</blockquote>
</body>
</html>