Hi,

I noticed slowness with the following file with Vim 7.3.1163 regexpengine=0.

https://raw.github.com/rails/rails/v2.3.18/actionpack/lib/action_controller/session/abstract_store.rb

rubyPredefinedConstant pattern looks much slower with this file.

syntime result:

:set re=0

  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN
  0.073358   187    0       0.001526    0.000392  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\
  0.018682   187    0       0.000380    0.000100  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!
  0.013895   187    0       0.000315    0.000074  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(MatchingData\|ARGF\|ARGV\|ENV\)\>\%(\s*(\)\@!
  0.013364   187    0       0.000255    0.000071  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(DATA\|FALSE\|NIL\)\>\%(\s*(\)\@!
  0.002764   245    64      0.000046    0.000011  rubyConstant       
\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=\%(\s*(\)\@!
  0.002424   187    0       0.000065    0.000013  rubySymbol         
[]})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@=
  0.001819   192    5       0.000068    0.000009  rubyConditionalExpression 
\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>
  0.001697   187    0       0.000033    0.000009  rubyKeywordAsMethod 
\%(\%(\.\@<!\.\)\|::\)\_s*\%(undef\|unless\|until\|when\|while\|yield\|BEGIN\|END\|__FILE__\|__LINE__\)\>


:set re=1

  TOTAL      COUNT  MATCH   SLOWEST     AVERAGE   NAME               PATTERN
  0.008567   187    0       0.000514    0.000046  rubySymbol         
[]})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@=
  0.005828   187    0       0.000094    0.000031  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!
  0.005348   187    0       0.000089    0.000029  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(MatchingData\|ARGF\|ARGV\|ENV\)\>\%(\s*(\)\@!
  0.004913   187    0       0.000082    0.000026  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(DATA\|FALSE\|NIL\)\>\%(\s*(\)\@!
  0.003586   187    0       0.000059    0.000019  rubyPredefinedConstant 
\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\
  0.002730   187    0       0.000079    0.000015  rubySymbol         
[[:space:],{]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@=
  0.002398   187    0       0.000075    0.000013  rubySymbol         
\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!
  0.001528   245    64      0.000040    0.000006  rubyConstant       
\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=\%(\s*(\)\@!
  0.001289   189    2       0.000029    0.000007  rubyKeywordAsMethod 
\%(\%(\.\@<!\.\)\|::\)\_s*\%(elsif\|end\|ensure\|false\|for\|if\|in\|module\|next\|nil\)\>

-- 
-- 
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/groups/opt_out.


Raspunde prin e-mail lui