Adam Treat treat at kde.org
Fri Aug 4 20:40:22 UTC 2006

On Friday 04 August 2006 4:21 pm, mwoehlke wrote:
> Adam Treat wrote:
> > On Friday 04 August 2006 3:22 pm, mwoehlke wrote:
> >> Adam Treat wrote:
> >>> SVN commit 569772 by treat:
> >>>
> >>> Optimize project loading, document loading, and background parser.
> >>>
> >>> [snip]
> >>>
> >>> With no open documents at startup, I can still parse every file, all
> >>> 1268, at startup in under 1 minute.
> >>>
> >>> That's pretty fast.
> >>
> >> Hmm, an improvement, I guess? Still, I'd be much happier if it was under
> >> 15 *seconds*. My main project is almost 2000 files (although because I
> >> can't get 'add file to project' to work, they aren't all be in the
> >> project), so I have to deal with a similar - if not worse - delay. :-(
> >> Anyone have numbers on how long the same task on the same computer would
> >> takes without these changes?
> >
> > Ok, if you don't have any open documents and you've already opened the
> > project before then it shouldn't need to parse all files on startup. 
> > Besides, in this case the backgroundparser works in the background.  The
> > GUI is responsive before it is completed.
> >
> > When we get the static stuff in the parser sorted out we can use even
> > more threads which might make it faster.
> >
> > If you choose to open 2000 documents on project start, then you really
> > aren't happy with it under a couple minutes?
> Assuming by "open" you mean "have opened in tabs, i.e. to edit", I only
> have maybe a dozen files open; sometimes only 3-4. I think it was less
> than six for the instance where I timed it.

Yah, I mean a KPart has been created for every open document.  Files that are 
just parsed from disk are not 'open'.  Typically I'd imagine most people 
don't have more than a few dozen files open at startup.

I'm talking about opening 1268 files at startup.  That takes less than 2 
minutes.  I think that is pretty good.  

For a few dozen it should take a only a few seconds.

To be sure, we still have to work on it.

> It almost sounds like I am not having this parsing stuff persisted? Or
> maybe it's something totally different; you probably know better than I
> do (given that you, or at least Matt, has my callgrind output).
> >> I gave Matt Rogers a callgrind dump from opening my project; did
> >> anything ever come of that?
> >
> > I've talked about it with Matt a little.  He said that one of the things
> > that is eating away is the calls to KMimeType::findByUrl() i think.  I
> > cache that information now so it is only called once per doc.  We'll
> > continue to try and get better.
> Yeah, that sounds like the "big killer" I remember noticing. Anyway, was
> just wondering; thanks for the info!

More information about the KDevelop-devel mailing list