[Ecls-list] Looking for ideas to help reduce initialization time in cl_boot()

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Thu Oct 29 22:59:22 UTC 2009


On Thu, Oct 29, 2009 at 11:39 PM, Ram Krishnan <kriyative at gmail.com> wrote:
> 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.

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.

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.

> Anyway, the pointer to the "externalize" branch is much appreciated

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

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com




More information about the ecl-devel mailing list