[Geany-devel] Performance issues?

Lex Trotman elextr at xxxxx
Mon Mar 28 22:04:13 UTC 2011


On 29 March 2011 07:37, Colomban Wendling <lists.ban at herbesfolles.org> wrote:
> Hi,
>
> Le 28/03/2011 05:10, Lex Trotman a écrit :
>> On 28 March 2011 12:35, Thomas Martitz
>> <thomas.martitz at student.htw-berlin.de> wrote:
>>> On 27.03.2011 05:15, Lex Trotman wrote:
>>>>
>>>> The question is can problems be introduced by not reparsing things, eg
>>>> if we are editing a .h file, can that affect the symbols of the .c
>>>> files that include it ... probably possible AFAICT.
>
> AFAICT it is possible but unlikely since the only thing that would have
> this kind of "side effects" is the C/C++ (and probably D) preprocessor
> (e.g. if a constant changing conditional code changes). Not 100% sure
> though.

Actually the tag manager parses all options since it doesn't know how
to evaluate the conditions and then gets confused when something gets
defined twice :-)

But on further thought I don't think real-time parsing of only one
file makes the problem in any way worse than non-real-time parsing so
its ok.

>
>>>> Is there some easy way of triggering re-parsing of dependencies when
>>>> the sidebar is about to swap to a different file?  That way real-time
>>>> update only needs to do the one file being edited, but no artifacts
>>>> are introduced due to inconsistencies between when tags were parsed.
>
> I don't know (without further search), but I'm not sure it'd resolve the
> "issue", since while editing file 1 you wouldn't get the changes from
> file 2.
> But again, not sure it's a real issue.

As above I don't think its a problem any more.

>
>> Well its not really dependency aware, in the non-real-time version it
>> does it by reparseing *all* files in the workspace when any one of
>> them is saved, so there can be no inconsistency.
>> It is the fact that its doing all of them on real-time update that is
>> the performance problem, so we want to real-time parse only the file
>> we are editing.
>
> True. Moreover -- as far as I can understand the TagManager code (so,
> only more or less :D) -- the parent updates will not be done in-memory,
> so it's definitely a problem we should solve.

Probably better to leave it as is rather than potentially use up
memory, if its only done at save time.

>
>> Not being certain what inconsistencies there might be, I'd suggest
>> trying it, only parse the one file real-time and all the others at
>> save time, ie apply Yura's patch (below) and see.
>
> Agreed. However the patch would *always* disable updating parent, what
> we probably don't want (though, not really sure what it'd change). So I
> have modified it and committed it to SVN (r5642).

Ok, oh well, as above, I'm not sure it has any consequences, lets test
it and see.

Cheers
Lex

>
> Hope this fixes the issue, feedback welcome.
> And guys, thanks a lot for tracking this down!
>
> Cheers,
> Colomban
> _______________________________________________
> Geany-devel mailing list
> Geany-devel at uvena.de
> https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
>



More information about the Devel mailing list