[darcs-devel] darcs patch: (Re)upgrade createPS and generatePS to D... (and 8 more)

Jason Dagit dagit at codersbase.com
Wed Feb 6 17:23:18 UTC 2008


On Feb 6, 2008 8:48 AM, David Roundy <droundy at darcs.net> wrote:
> On Wed, Feb 06, 2008 at 11:44:42AM -0500, David Roundy wrote:
> > > Maybe we can egg on the bytestring people and get them to submit
> > > patches taking this further down (for example, they could improve our
> > > between newlines and nth newline stuff).
> >
> > That'd be nice.
>
> I should note, though, that we can also make probably faster progress by
> simply reducing the dependency on the counting of lines.  In particular,
> I'd like to change Hunk to store a new and old PackedString + line number
> counts, rather than storing new and old [PackedString].  We'd still need to
> find the nth newline, etc, but we'd use much less memory and probably be
> faster to boot.  Even better when we introduce (maybe before darcs 2 is
> released?) a new hunk file format that doesn't have all those +'s and -'s.
> Then parsing is lightning fast and we won't need duplicate copies of the
> hunk data in memory.

I don't know if you're aware of this, but some time ago (probably
measurable in years now) I did this very refactor of the patch format
for hunks and experimented.  My implementation with chunks was
measurably slower than the existing implementation.  Not by a lot but
you could measure a small decrease in performance time.  I checked and
I don't seem to have my performance notes about it anymore.

I would say that this type of refactor is surprisingly low priority.
At least, that's what I felt like after spending time on it.  The
current parsing code is amazingly fast.

Just my $0.02.  I know others here are more experienced with both
darcs internals and optimizing haskell, so maybe collectively you'll
have better luck than I did.

Jason


More information about the darcs-devel mailing list