"Abdulaziz Ghuloum" wrote:
>>On Jan 7, 2010, at 10:04 AM, Marco Maggi wrote:
>>
>>  I guess that Ikarus itself is not to blame, rather it is
>> libffi which takes time.
>
> Can you explain how you came to that conclusion?  

It is a guess made up from the following:

1. While Ikarus is almost always a bit slower than Mosh when
   running single-shot  programs like my  test suites (let's
   say  1/3 slower), the  proportion in  this case  is huge.
   Ypsilon is always slower  then Mosh and occasionally (but
   rarely) slower than Ikarus.
   
   The only  true difference between  this case and  all the
   others in  Nausicaa is  the number of  generated callouts
   (around 1300).

2. Ypsilon and Mosh have  a very similar way of implementing
   the  FFI (in facts,  Higepon took  code from  Ypsilon for
   it); I have tracked Mosh's development in the last months
   and I  have seen its execution speed  go up significantly
   while  Higepon  was   working  on  optimisations  in  the
   byte-compiler.  I guess that  Ypsilon is so slower mostly
   because   Fujita   has  not   worked   to  optimise   the
   byte-compiler, yet.

3.   Both Ypsilon  and Mosh  are faster  than Ikarus  in the
   single-shot program case, but in the past I have run some
   simple profiling  of code timing  execution after program
   loading  and initialisation; the  result was  that Ikarus
   can  be   significantly  faster.   I   gather  that  when
   executing  code  Ikarus is  probably  faster, while  when
   loading  and  initialising  the  program it  is  probably
   slower.

4. The test  program only calls a callout  once; the bulk of
   the work is to generate the callouts themselves, which is
   the work of libffi.

HTH
-- 
Marco Maggi

Reply via email to