I am experimenting with a very simple optimization that replaces the discriminating function of slot accessors based on the following criteria:<div><br></div><div>- The generic function should only contain methods of the type standard-reader/writer-method</div>

<div>- The methods should be specialized on classes whose metaclass is standard-class</div><div>- The optimization assumes that under those circumstances the user is not allowed to extend the slot-value-using-class method (according to AMOP) and thus the slot accessor can avoid calling slot-value.</div>

<div>- If all this applies, the discriminating function finds out the slot that has to be read and its location (both are cached in a thread-local hash) and reads/writes to the slot.</div><div><br></div><div>The preliminary figures cut down the execution time in FPRINT/PRETTY (gabriel's benchmark) by 50%.</div>

<div><br></div><div>To the MOP experts here, does this all sound reasonable?</div><div><br></div><div>Juanjo</div><div><br></div><div>P.S.: My idea is also to add compute-discriminating-function generic functions to ECL.<br clear="all">

<div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>


</div>