[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Illegal C++
From: |
Han-Wen Nienhuys |
Subject: |
Re: Illegal C++ |
Date: |
Fri, 07 Oct 2005 11:00:21 +0200 |
User-agent: |
Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929) |
[back to mailing list.]
Wiz Aus wrote:
Um...lilypond uses an interpretive language (Scheme), goes via TEX
and PS to produce output, and you're worried about a few extra C++
function calls? I would be flabbergasted if this made any measurable
difference to lilypond's performance.
Actually, the optimization was pretty trivial once I had the
precomputed methods going. FWIW, the top of the profile shows a lot of
these "lowlevel" function calls that take a large amount of total
execution time because of how often they are called.
Ok, I just download the typeset of Beethoven's 7th symphony, 2nd
movement from www.mutopiaproject.com, and lilypond took a rather
languorous 2.5 minutes to produce a PDF!
What would it have been *before* the optimizations?
I don't know for sure. Try 2.6 if you want numbers. The major
optimization was actually reconfiguring some memory management
parameters, which saved 30 to 40%. Most other optimizations were in the
order of 2 to 5 %.
I would expect 10
seconds absolute tops, and realistically, I would want to be able to
edit a score of this size (if not longer) and see my changes instantly -
i.e., subsecond output re-generation. Obviously "regeneration" can
generally usually be done faster than generation from scratch (via
caching etc.), but 2.5 minutes seems kinda crazy.
I agree that it would be nice. If you have a constructive idea how we
can do this, I'd be glad to hear about it.
On top of this, the actual score produced is well...um...let's say "a
nice looking rough draft" - I'm not sure how much lilypond itself is to
blame (as opposed to the typesetter), but the score looks fairly free of
overrides and adjustments, so I was kinda surprised to see text
overlapping slurs and hairpins,
I'm not claiming that Lily produces perfect output. Better collision
detection is on our radar, but the 2.7 series seems to be focused on
page layout. Also, solving collisions algorithmically is tricky. For
every case that you do correctly, there are also cases where the
algorithm will make a bigger mess.
--
Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen