On Mar 27, 2014 7:56 PM, "Christian Brabandt" <[email protected]> wrote: > > [copying Zyx, as he is the maintainer of the syntax script] > > Am 2014-03-27 00:05, schrieb Dominique Pellé: >> >> I can reproduce the slowness using the yaml file copied >> from http://yaml.org > > [...] > >> >> If I use ":syntime on" and ":syntime report", I see this: >> >> With relativenumber: >> >> TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN >> 3.706423 7752 7395 0.002521 0.000478 yamlPlainScalar >> \%([\-?:,\[\]{}#&*!|>'"%@`]\@!\%(\%([\n\r\uFEFF >> \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\)\@!\p\)\)\@= >> 1.105733 4029 2040 0.000742 0.000274 yamlFloat >> \%([\[\]{}, >> \t]\@!\p\)\@<!\%([+-]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][+-]\d\+\)\=\|\.[0-9_]\+\%([eE][-+][0- >> 0.711836 1224 0 0.001174 0.000582 yamlBlockMappingKey >> \%#=1\s*\zs\%([\-?:,\[\]{}#&*!|>'"%@`]\@!\%(\%([\n\r\uFEFF >> \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\)\ >> >> 0.481088 2703 153 0.000815 0.000178 yamlInteger >> \%([\[\]{}, >> \t]\@!\p\)\@<!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0- >> 0.044233 2601 0 0.000042 0.000017 yamlTimestamp >> \%([\[\]{}, >> \t]\@!\p\)\@<!\%(\d\{4}-\d\d\=-\d\d\=\%(\%([Tt]\|\s\+\)\%(\d\d\=\):\%(\d\d\):\%(\d\d\)\%(\.\%( >> 0.038902 2652 408 0.000056 0.000015 yamlBlockMappingKey >> \%#=1^\s*\zs\%([\-?:,\[\]{}#&*!|>'"%@`]\@!\%(\%([\n\r\uFEFF >> \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\) > > > Those patterns are crazy. Here is a patch, that deviates the performance issue slightly > (mainly by making sure, the old 're' engine is used in place of those high performance syntax > items and by limiting the look-around assertion). This fixes the performance penalties > even more but might make syntax highlighting more inaccurate (although I used a conservative > limit of 100 bytes).
If I understand these limits correctly it can be limited to an exact amount of bytes: AFAIR I was using only fixed-width lookarounds (making these limits be possible to be deduced by re engine). At least this patch touches only fixed-width lookarounds. Though I may understand these limits not correctly. > > Also, I noticed, the syntax script is missing some :syn sync rules. I am not sure, what the default > is, but some clever syn rules could also improve syntax performance slightly. > > Best, > Christian -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
