Le 23/09/2011 19:48, Thomas Martitz a écrit :
Am 22.09.2011 18:30, schrieb Nick Treleaven:
Hi, Whilst opening doc/geany.html I found it takes >5s on my machine to load. It's a big document though, still perhaps the HTML tag parser performance could be improved.
But now we have tag reparsing, editing geany.html becomes painful. I know we can disable reparsing, but what else could we do to improve the situation? It's not urgent to solve this problem, unless we want to make reparsing off by default.
How about automagically disabling auto-reparsing per-file if it takes too long (1s?) at runtime? Without needing to change the setting that is.
I like the idea.
Having a per-document setting (enabled/disabled) that would be automagically turned off if a configured performance impact is reached would probably be a correct compromise.
Something like:
(arbitrary values) max-reparse-duration: 500ms max-reparse-duration-exceeding: 3
if (reparse_duration >= max_reparse_duration) { /* give heavier weight to failures */ doc->n_reparse_duration_exceeding += 2; if (doc->n_reparse_duration_exceeding >= (max_reparse_duration_exceeding * 2)) { doc->real_time_reparse = FALSE; } } else { /* give lighter weight to success */ doc->n_reparse_duration_exceeding -= 1; }
max-reparse-duration-exceeding is useful not to suffer of false-positives like a reparsing happening when the machine is under heavy load or any other temporary problem. And it is always possible to set it to <= 1 to disable that heuristic.
Opinions, ideas?
Regards, Colomban