Re: [Geany-devel] Performance issues?
Le 28/03/2011 22:37, Colomban Wendling a écrit : [...] 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. This is at least not totally true if I trust strace (no IO during these updates, in facts I had already checked this when I initially wrote the in-memory stuff). At least without geanyprj. 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). Hope this fixes the issue, feedback welcome. And guys, thanks a lot for tracking this down! Unfortunately, this change broke calltips (see today's Nick's mail and my answer). I then reverted this, and we have to find a better fix. I'll try to track this further, though I can't promise anything in the next days, nor I know GeanyPRJ, so if anybody beat me in time, it'd be great :D Regards, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Hi, Le 28/03/2011 05:10, Lex Trotman a écrit : On 28 March 2011 12:35, Thomas Martitz thomas.mart...@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. 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. 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. 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). Hope this fixes the issue, feedback welcome. And guys, thanks a lot for tracking this down! Cheers, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues? [PATCH]
Le 27/03/2011 13:23, Yura Siamashka a écrit : On Sun, 27 Mar 2011 14:15:45 +1100 Lex Trotman ele...@gmail.com wrote: 1) geanyprj act only on document-open, document-save, document-activate callbacks 2) geanyprj add a lot of TMWorkObject objects using tm_workspace_add_object() to Geany And tm_workspace_add_object sets the parent to be the whole workspace! Can something be done for this? No idea -- I only barely know this part if the TagManager, sorry. Because of item 2) above I think this will reparse all open files. I don't think it is true. I used mantisbt project to test. Initially it takes few seconds to load the project (parse all files). Delay during typing is much less then second. You are right, because updating the root workspace don't really update the child SourceFiles (because the force param is set to FALSE). Projects are maybe affected though (however, not sure where/when they are used). Anyway here is patch that make Geany don't parse tags when user is actively typing. I'm not sure about this patch, because it is then really easy to make the tag list never update automatically. E.g. if update timeout is set to 1s, just type something every 999ms and then update will never happen, even if there is actually 1s free to do it. Are really the update making something unresponsive for you? But maybe I'm worrying too much and this only need the timeout to be configured otherwise, I may try to tune this if you really think it's important. I also plan to try to move the TagManager parsing in a separate thread at some point, maybe it'll help (though maybe it's the UI update that takes most of the time...). However, don't expect this to happen very soon, I'm a thread newbie so it's likely to take me time to get it working properly. Cheers, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues? [PATCH]
On 29 March 2011 08:29, Yura Siamashka yura...@gmail.com wrote: On Mon, 28 Mar 2011 23:00:54 +0200 Colomban Wendling lists@herbesfolles.org wrote: Anyway here is patch that make Geany don't parse tags when user is actively typing. I'm not sure about this patch, because it is then really easy to make the tag list never update automatically. E.g. if update timeout is set to 1s, just type something every 999ms and then update will never happen, even if there is actually 1s free to do it. Please show me that energeezer that type something every second and even have time to inspect tags while doing it. :) It is quite unrealistic to me. On other hand if someone is just typing parse delay can be annoying if his file is HUGE. Are really the update making something unresponsive for you? Actually I was happy with Geany performance even before any related changes, so it is not very important to me, but I think it can be usefull to topic starter. But maybe I'm worrying too much and this only need the timeout to be configured otherwise, I may try to tune this if you really think it's important. I also plan to try to move the TagManager parsing in a separate thread at some point, maybe it'll help (though maybe it's the UI update that takes most of the time...). No, I suspected this first and disabled UI update during research (delay seemed the same), but maybe it is worth to make smart update. Parser report that some tags were actually changed and you call UI update only then (if it is not done already) Seems to me that none of this answers the original question of why is the lag much greater when both Geanyprj and real-time update are in use, compared to the lag when only one of them is in use? If we could answer that then adding delays etc would be immaterial :-) Cheers Lex -- Yura Siamashka yura...@gmail.com ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On 29 March 2011 07:37, Colomban Wendling lists@herbesfolles.org wrote: Hi, Le 28/03/2011 05:10, Lex Trotman a écrit : On 28 March 2011 12:35, Thomas Martitz thomas.mart...@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@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On Tue, Mar 29, 2011 at 00:04, Lex Trotman ele...@gmail.com wrote: 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. Ah, that is something I can help with! I'll update to the latest rev first thing tomorrow morning... -tnx!- Harold ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues? [PATCH]
Hi On Sun, 27 Mar 2011 14:15:45 +1100 Lex Trotman ele...@gmail.com wrote: 1) geanyprj act only on document-open, document-save, document-activate callbacks 2) geanyprj add a lot of TMWorkObject objects using tm_workspace_add_object() to Geany And tm_workspace_add_object sets the parent to be the whole workspace! Can something be done for this? Because of item 2) above I think this will reparse all open files. I don't think it is true. I used mantisbt project to test. Initially it takes few seconds to load the project (parse all files). Delay during typing is much less then second. Anyway here is patch that make Geany don't parse tags when user is actively typing. -- Yura Siamashka yura...@gmail.com update-tags-only-on-idle.patch Description: Binary data ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On Wed, 23 Mar 2011 23:49:41 +1100 Lex Trotman ele...@gmail.com wrote: Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. I looked at the problem: 1) geanyprj act only on document-open, document-save, document-activate callbacks 2) geanyprj add a lot of TMWorkObject objects using tm_workspace_add_object() to Geany 3) Geany call update_tags_from_buffer() very often. I think this function somehow reparse a lot of objects because of update_parent param. I am not sure what this param actualy mean but if I change function this way performance is back to normal (I don't say we need to change it, it is just research): --- a/src/document.c +++ b/src/document.c @@ -2263,7 +2263,7 @@ static gboolean update_tags_from_buffer(GeanyDocument *doc) /* we copy the whole text into memory instead using a direct char pointer from * Scintilla because tm_source_file_buffer_update() does modify the string slightly */ sci_get_text(doc-editor-sci, len, text); - result = tm_source_file_buffer_update(doc-tm_file, (guchar*) text, len, TRUE); + result = tm_source_file_buffer_update(doc-tm_file, (guchar*) text, len, FALSE); g_free(text); #endif return result; -- Yura Siamashka yura...@gmail.com ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On 27 March 2011 12:31, Yura Siamashka yura...@gmail.com wrote: On Wed, 23 Mar 2011 23:49:41 +1100 Lex Trotman ele...@gmail.com wrote: Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. I looked at the problem: 1) geanyprj act only on document-open, document-save, document-activate callbacks 2) geanyprj add a lot of TMWorkObject objects using tm_workspace_add_object() to Geany And tm_workspace_add_object sets the parent to be the whole workspace! 3) Geany call update_tags_from_buffer() very often. I think this function somehow reparse a lot of objects because of update_parent param. I am not sure what this param actualy mean but if I change function this way performance is back to normal (I don't say we need to change it, it is just research): --- a/src/document.c +++ b/src/document.c @@ -2263,7 +2263,7 @@ static gboolean update_tags_from_buffer(GeanyDocument *doc) /* we copy the whole text into memory instead using a direct char pointer from * Scintilla because tm_source_file_buffer_update() does modify the string slightly */ sci_get_text(doc-editor-sci, len, text); - result = tm_source_file_buffer_update(doc-tm_file, (guchar*) text, len, TRUE); Because of item 2) above I think this will reparse all open files. 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. 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. Cheers Lex + result = tm_source_file_buffer_update(doc-tm_file, (guchar*) text, len, FALSE); g_free(text); #endif return result; -- Yura Siamashka yura...@gmail.com ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On 23 March 2011 21:24, Harold Aling ge...@sait.nl wrote: Dear devs, Just pressing and holding a key pauses every ~10 characters. This is only the case in a document when working on a pre-existing file, a new document is as fast as can be. What could be causing this? Does anybody else have the same problem? I'm working on a php/Drupal project and use the geanyprj plugin to index all files. Harold Version? Platform? How big are the files? Are you editing near the beginning or the end? How fast is your computer and how much free memory does it have? Cheers Lex I removed all file paths from the dedug messages as it contains the name of our client and the project... 11:06:33: Geany INFO : Geany 0.21 (svn = r5584), en_US.UTF-8 11:06:33: Geany INFO : GTK 2.22.0, GLib 2.26.1, GIO 11:06:33: Geany INFO : System data dir: /usr/local/share/geany 11:06:33: Geany INFO : User config dir: /home/harold/.config/geany 11:06:34: Geany INFO : Added filetype Genie (52). 11:06:34: Geany INFO : Added filetype Scala (53). 11:06:34: Geany INFO : Loaded: /usr/local/lib/geany/addons.so (Addons) 11:06:34: Geany INFO : Loaded: /usr/local/lib/geany/filebrowser.so (File Browser) 11:06:34: Geany INFO : Loaded: /usr/local/lib/geany/geanylipsum.so (GeanyLipsum) 11:06:34: Geany INFO : Loaded: /usr/local/lib/geany/geanyprj.so (Project) 11:06:34: Geany INFO : Plugin /usr/lib/geany/filebrowser.so already loaded. 11:06:34: Geany INFO : Plugin /usr/lib/geany/geanyprj.so already loaded. 11:06:34: Geany INFO : document path.css : CSS (UTF-8) 11:06:34: Geany INFO : Bad color '0x0' 11:06:34: Geany INFO : Bad color '0x0' 11:06:54: Geany INFO : document path.php : PHP (UTF-8) 11:06:54: Geany INFO : Loaded /usr/local/share/geany/php.tags (PHP), 2338 tag(s). 11:06:54: Geany INFO : Bad color '0xfff' 11:06:54: Geany INFO : document path.php : PHP (UTF-8) 11:06:54: Geany INFO : document path.php : PHP (UTF-8) 11:06:55: Geany INFO : document path.php : PHP (UTF-8) 11:06:55: Geany INFO : document path.css : CSS (UTF-8) 11:06:56: Geany INFO : document path.php : PHP (UTF-8) 11:06:56: Geany INFO : document path.php : PHP (UTF-8) 11:06:57: Geany INFO : document path.module : PHP (UTF-8) 11:06:57: Geany INFO : document path.info : None (UTF-8) 11:07:03: Geany INFO : document path.css : CSS (UTF-8) 11:07:34: Geany INFO : document path.css : CSS (UTF-8) 11:08:05: Geany INFO : document path.php : PHP (UTF-8) 11:08:19: Geany INFO : document path.php : PHP (UTF-8) 11:08:30: Geany INFO : document path.php : PHP (UTF-8) 11:08:55: Geany INFO : unknown : None (UTF-8) 11:09:22: Geany INFO : document path.php : PHP (UTF-8) 11:12:15: Geany INFO : unknown : None (UTF-8) 11:12:26: Geany INFO : unknown : PHP (UTF-8) 11:12:57: Geany INFO : document path.php : PHP (UTF-8) 11:13:51: Geany INFO : document path.php : PHP (UTF-8) 11:14:56: Geany INFO : document path.php : PHP (UTF-8) ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Am 23.03.2011 13:22, schrieb Lex Trotman: I would suggest that there may be an interaction between real-time tag parsing that was recently added to the SVN version and Geanyprj that makes heavy use of tags. Unfortunately there doesn't seem to be any documentation on real-time parsing or any way to turn it off to see if thats the case. There is some tooltip info. Turn it to 0 inside preferences and it should be normal tag parsing as we had before. (I saw this during doing some translation work for German translation... ;) ) Cheers, Frank ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
By reading the code I think you mean editor preferences, completions tab, symbol list update frequency set to zero. Yup, that fixed the lag! But it also diabled the real-time parser, which was a welcome addition. Can this be fixed somehow? Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. Cheers Lex -H- ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On 23 March 2011 23:49, Lex Trotman ele...@gmail.com wrote: By reading the code I think you mean editor preferences, completions tab, symbol list update frequency set to zero. Yup, that fixed the lag! But it also diabled the real-time parser, which was a welcome addition. Can this be fixed somehow? Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. I forgot to say you probably should notify him, see the plugin web page. Cheers Lex Cheers Lex -H- ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On Wed, Mar 23, 2011 at 13:49, Lex Trotman ele...@gmail.com wrote: By reading the code I think you mean editor preferences, completions tab, symbol list update frequency set to zero. Yup, that fixed the lag! But it also diabled the real-time parser, which was a welcome addition. Can this be fixed somehow? Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. Could it be that the real-time parser reparses all files in the project instead of just the current file? In the mean time, I'll just disable the real time parsing. -H- ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Hi, Le 23/03/2011 13:53, Harold Aling a écrit : On Wed, Mar 23, 2011 at 13:49, Lex Trotman ele...@gmail.com wrote: By reading the code I think you mean editor preferences, completions tab, symbol list update frequency set to zero. Yup, that fixed the lag! But it also diabled the real-time parser, which was a welcome addition. Can this be fixed somehow? Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. Could it be that the real-time parser reparses all files in the project instead of just the current file? No, it doesn't (or then it's a very strange bug I have to fix...). In the mean time, I'll just disable the real time parsing. You can try increasing the minimal delay between two updates to reduce the lag (the very preference you set to 0). Doing so will reduce the realtimeness of the tag parsing, but should improve the performances. Maybe the default delay of 250ms should be changed to a longer one, 250 being too aggressive... Regards, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Le 23/03/2011 13:36, Lex Trotman a écrit : On 23 March 2011 23:32, Frank Lanitz fr...@frank.uvena.de wrote: Unfortunately there doesn't seem to be any documentation on real-time parsing or any way to turn it off to see if thats the case. There is some tooltip info. Turn it to 0 inside preferences and it should be normal tag parsing as we had before. By reading the code I think you mean editor preferences, completions tab, symbol list update frequency set to zero. For the writer of the real-time tags, preferences documentation needs fixing and probably a good idea to say something in the tags section too. True, will try to fix this ASAP, thanks for pointing it out. Cheers, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On Wed, Mar 23, 2011 at 14:12, Colomban Wendling lists@herbesfolles.org wrote: In the mean time, I'll just disable the real time parsing. You can try increasing the minimal delay between two updates to reduce the lag (the very preference you set to 0). Doing so will reduce the realtimeness of the tag parsing, but should improve the performances. Maybe the default delay of 250ms should be changed to a longer one, 250 being too aggressive... Even when not triggered that often, the lag is really annoying... Reminds me of the Eclipse editor an ex-collegue of mine used: the ultimate test for blind typing! Eclipse was always one word behind... ;) I use geany for it's speed and simplicity, a lag doesn't fit in that description. -H- ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. Could it be that the real-time parser reparses all files in the project instead of just the current file? No, it doesn't (or then it's a very strange bug I have to fix...). Since performance is ok with real-time parsing but without Geanyprj and without real-time parsing but with Geanyprj the problem must be some kind of interaction. Does updating the tags do something that triggers Geanyprj in some way (eg document activation signal) which then causes more work to be done? In the mean time, I'll just disable the real time parsing. You can try increasing the minimal delay between two updates to reduce the lag (the very preference you set to 0). Doing so will reduce the realtimeness of the tag parsing, but should improve the performances. Maybe the default delay of 250ms should be changed to a longer one, 250 being too aggressive... Havn't used it much so far, but works ok for me at 250. The updates are just visible, but its not too far from the 100ms thats usually taken as the lower limit of noticing UI delays so I think its a reasonable compromise. Cheers Lex Regards, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Even when not triggered that often, the lag is really annoying... Reminds me of the Eclipse editor an ex-collegue of mine used: the ultimate test for blind typing! Eclipse was always one word behind... ;) Its very mean saying Geany is like Eclipse [tantrum] :-( I use geany for it's speed and simplicity, a lag doesn't fit in that description. Sigh, plugin systems are great because they allow anyone to add functionality that they want. Sigh, plugin systems are a problem because they allow anyone to add functionality any way they want. :-) The Geany team doesn't have the resources to manage all the plugins and ensure that they fit the philosophy or how well they are implemented and maintained. But Geany still gets the blame :-( Cheers Lex -H- ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On Wed, Mar 23, 2011 at 14:50, Lex Trotman ele...@gmail.com wrote: Even when not triggered that often, the lag is really annoying... Reminds me of the Eclipse editor an ex-collegue of mine used: the ultimate test for blind typing! Eclipse was always one word behind... ;) Its very mean saying Geany is like Eclipse [tantrum] :-( I didn't say that! I said the lag introduced by geanyprj reminded me of a laggy Eclipse which was really slow on it's own, even without the aid of a plugin ;) I use geany for it's speed and simplicity, a lag doesn't fit in that description. Sigh, plugin systems are great because they allow anyone to add functionality that they want. Sigh, plugin systems are a problem because they allow anyone to add functionality any way they want. :-) The Geany team doesn't have the resources to manage all the plugins and ensure that they fit the philosophy or how well they are implemented and maintained. But Geany still gets the blame :-( That is indeed the downside of plugins, but I can't imagine Geany without it. -H- ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Le 23/03/2011 14:14, Colomban Wendling a écrit : Le 23/03/2011 13:36, Lex Trotman a écrit : On 23 March 2011 23:32, Frank Lanitz fr...@frank.uvena.de wrote: Unfortunately there doesn't seem to be any documentation on real-time parsing or any way to turn it off to see if thats the case. There is some tooltip info. Turn it to 0 inside preferences and it should be normal tag parsing as we had before. By reading the code I think you mean editor preferences, completions tab, symbol list update frequency set to zero. For the writer of the real-time tags, preferences documentation needs fixing and probably a good idea to say something in the tags section too. True, will try to fix this ASAP, thanks for pointing it out. Done. However, I'm not a really good writer of this kind of documentation... any comments and/or improvements are welcome :) Regards, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Le 23/03/2011 14:25, Lex Trotman a écrit : Thats a bit harder, probably Yura, the plugin writer will need to take a look at the problem I'd say. Could it be that the real-time parser reparses all files in the project instead of just the current file? No, it doesn't (or then it's a very strange bug I have to fix...). Since performance is ok with real-time parsing but without Geanyprj and without real-time parsing but with Geanyprj the problem must be some kind of interaction. Does updating the tags do something that triggers Geanyprj in some way (eg document activation signal) which then causes more work to be done? I don't think so (no 100% sure, but almost). Maybe Geanyprj does something every time seconds, and does more work if tags have changed? (easy enough ti check I guess) ...don't know. A talk with Yura to figure out from where the lag comes would be useful I think :) In the mean time, I'll just disable the real time parsing. You can try increasing the minimal delay between two updates to reduce the lag (the very preference you set to 0). Doing so will reduce the realtimeness of the tag parsing, but should improve the performances. Maybe the default delay of 250ms should be changed to a longer one, 250 being too aggressive... Havn't used it much so far, but works ok for me at 250. The updates are just visible, but its not too far from the 100ms thats usually taken as the lower limit of noticing UI delays so I think its a reasonable compromise. Actually I set 250ms quite arbitrary after the performances on my computer. Something like 100ms is OK for me, let's add a x1.5 factor for older machines not to lag... OK, 250ms looks good :D Cheers, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Done. However, I'm not a really good writer of this kind of documentation... any comments and/or improvements are welcome :) Couple of minor comments (I've used lines from the Geany.txt diff to identify them, hence the + signs.): +Tags for each document are parsed whenever a file is loaded or saved, and Just replace the or with a comma. +possibly when modified (see *Symbol list update frequency* preference in the Since the default is to update on modify, I'd leave the possibly out. +current document. The smaller is the delay the more up-to-date is the +symbol list (and then the completions); but rebuilding the symbol list +has a cost in performance, especially with large files. Leave out both is in the preceding sentence, not needed, add a comma after delay. + +The default value is 250, which means the symbol list will be updated at Add milliseconds after 250 +most 4 times per second, even if the document changes continuously. Single digits should be spelled out so four. Cheers Lex ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
On 24 March 2011 10:28, Lex Trotman ele...@gmail.com wrote: Done. However, I'm not a really good writer of this kind of documentation... any comments and/or improvements are welcome :) Also just realised that the image needs to be updated to show the new field. Cheers Lex ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Le 24/03/2011 00:28, Lex Trotman a écrit : Done. However, I'm not a really good writer of this kind of documentation... any comments and/or improvements are welcome :) Couple of minor comments (I've used lines from the Geany.txt diff to identify them, hence the + signs.): +Tags for each document are parsed whenever a file is loaded or saved, and Just replace the or with a comma. +possibly when modified (see *Symbol list update frequency* preference in the Since the default is to update on modify, I'd leave the possibly out. +current document. The smaller is the delay the more up-to-date is the +symbol list (and then the completions); but rebuilding the symbol list +has a cost in performance, especially with large files. Leave out both is in the preceding sentence, not needed, add a comma after delay. + +The default value is 250, which means the symbol list will be updated at Add milliseconds after 250 +most 4 times per second, even if the document changes continuously. Single digits should be spelled out so four. Thanks! Should be fixed now, tell me if there still are some :) Cheers, Colomban ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Re: [Geany-devel] Performance issues?
Le 24/03/2011 01:57, Lex Trotman a écrit : On 24 March 2011 10:28, Lex Trotman ele...@gmail.com wrote: Done. However, I'm not a really good writer of this kind of documentation... any comments and/or improvements are welcome :) Also just realised that the image needs to be updated to show the new field. Right, I've seen it too. Gotta ping Enrico if he can update it, to get the same GTK+ scheme and stuff. ___ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel