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

Ram Krishnan kriyative at gmail.com
Thu Oct 29 23:20:57 UTC 2009


Juan Jose Garcia-Ripoll wrote:
> 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.
>    
I've attached some of the profiler output with this followup.
> 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.
>
>    
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.
>> 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
>
>    
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20091029/9ace182c/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: profiler.txt
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20091029/9ace182c/attachment.txt>


More information about the ecl-devel mailing list