On Monday 10 October 2005 18.17, Han-Wen Nienhuys wrote: > Wiz Aus wrote: > > Even if it did use pre-compiled scheme, because lilypond supports > > compiling scores that contain Scheme code, it would still require > > effectively interpretive processing, which is not doubt a large reason > > for it's less-than-blinding-fast operation. > > The problem is not so much in the Scheme execution, because the real > work is done in C++ routines. The problem is rather that data > structures are completely dynamic, so reading and writing a variable > isn't reading and writing memory, but rather walking linked lists or > lookups in hashtables.
To me, those property lists look like major bottlenecks (though I haven't done any real profiling). Especially the grob property alists: While I was debugging some time ago, I saw that Grob::internal_set_property was called over 1000 times in a trivial score. How would it be to build our own hash table lib (or use a patched version of an existing third-party lib) for efficient property lists? There's a free (as in BSD) hash lib here, I don't know if it's good: http://sourceforge.net/projects/goog-sparsehash/ I also haven't done any thinking on how this would work together with Guile; it's just a wild idea. -- Erik _______________________________________________ bug-lilypond mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-lilypond
