lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Use vectors rather than lists for skylines. (issue 583750043 by addr


From: hanwenn
Subject: Re: Use vectors rather than lists for skylines. (issue 583750043 by address@hidden)
Date: Sat, 18 Apr 2020 04:13:11 -0700

On 2020/04/17 22:44:12, Dan Eble wrote:
> On 2020/04/17 19:07:44, hanwenn wrote:
> > The profile data itself is also a more precise source for measuring
> > improvements that are close to the noise level, like
> > https://codereview.appspot.com/551730043/
> 
> Investigating improvements that are close to the noise level--never
mind, I
> won't tell you how to spend your time.

But you do drop a cloaked suggestion.

The noise level is contextually determined: if you do more experiments
under better controlled circumstances, the noise level decreases. But it
takes more time, and it is time I can't do other work on LilyPond; there
is only so much coffee one can drink on a single day.  (You'd think that
a 4-core machine would be able to put the lilypond task on a dedicated
CPU, but it looks it doesn't work like that in practice.)

I'm pretty sure there is still significant gains (say, 10%) to be had in
everything related to skyline processing. For example, we create (way
too detailed) glyph outlines, and even though they're constant, they're
not cached. We can probably also shortcut the glyph -> SCM lists ->
skyline path by constructing the skyline directly from the freetype
outline. The skyline functions construct both boxes and buildings, where
just buildings would suffice.

Many of these inefficiencies will be solved in smaller steps, with
smaller (~1%) gains. For the MSDM score, a 1% gain is 0.4 seconds, while
we see 0.3s variability between runs. So, unfortunately, yes, working on
performance has to happen at the noise level. 

> 5.5% is nice, though.  Thanks.
> 
>
https://codereview.appspot.com/583750043/diff/555670043/lily/skyline.cc
> File lily/skyline.cc (right):
> 
>
https://codereview.appspot.com/583750043/diff/555670043/lily/skyline.cc#newcode74
> lily/skyline.cc:74: for (vector<Building>::const_iterator i = b.begin
(); i !=
> b.end (); i++)
> for (auto i : b)
> 
>
https://codereview.appspot.com/583750043/diff/555670043/lily/skyline.cc#newcode219
> lily/skyline.cc:219: for (; cit != scp->end (); cit++)
> ++cit

both done.


https://codereview.appspot.com/583750043/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]