Ciao,

  the following  is the output  of a very  simple program[1]
loading  the low-level  library[2] from  my work-in-progress
binding to libxml2, which creates a lot of callouts:

===> test file ../tests/test-platform.sps with Ikarus

*** testing platform API

; *** checks *** : 1 correct, 0 failed.
real 53.47
user 53.24
sys 0.21

===> test file ../tests/test-platform.sps with Mosh

*** testing platform API

; *** checks *** : 1 correct, 0 failed.
real 1.31
user 1.25
sys 0.05

===> test file ../tests/test-platform.sps with Ypsilon

*** testing platform API

; *** checks *** : 1 correct, 0 failed.
real 13.05
user 14.53
sys 0.04

it is the second run, so all the libraries are compiled; the
execution speed  of Ikarus is a bit  embarrassing, while the
one  of Mosh is  amazing.  At  the first  run, when  Mosh is
compiling, it is Mosh the slowest one.

  The program  uses a  modified Nausicaa's Ikarus  FFI layer
which does  not cache the callout constructor;  but I tested
that, with and without  caching of callout constructors, the
difference is only one or two seconds.

  I guess that  Ikarus itself is not to  blame, rather it is
libffi which takes  time.  I will split The  One Big Library
into small  libraries (not all  of them are  always needed),
but can something be done about it?

TIA

[1] 
<http://github.com/marcomaggi/nausicaa/raw/master/libxml2/tests/test-platform.sps>
[2] 
<http://github.com/marcomaggi/nausicaa/raw/master/libxml2/src/libraries/foreign/xml/libxml2/platform.sls>
-- 
Marco Maggi

Reply via email to