Yakov Lerner wrote:

> I identified which functions are slow and which are fast out of functions
> called (load_dummy_buffer() + wipe_dummy_buffer()) pair.
> 
> As I wrote earlier this pair of functions is what slows down vimgrep,
> not the search. The loop of 1000x (load_dummy_buffer() + wipe_dummy_buffer(=
> ))
> takes 30 seconds per 1000 pairs on my machine (800 MHZ).  These tests
> are on empty files, so data size is not a problem. No regexp searching is
> performed.
> 
> Results:
> 
>     check_need_swap() - 50%  major  contributor to slowdown
>     ml_open()                - 30%  2nd contributor
>     setfname()               - 19%  surprise, surprise
> 
> The rest of functions are blazingly fast, take <1% of time.
> Fast functions (negligible overhead) include:
> - wipe_dummy_buffer()
> - buf_copy_options()
> - buflist_new()
> - aucmd_prepbuf()
> - aucmd_restbuf()
> 
> I don't have real results for readfile() because I
> tested on empty files. But on empty file readfile() works fast.

If creating the swap file takes so much time, something strange is
happening.  Are you on a network filesystem perhaps?  What system is
this anyway?

Testing with empty files may give a wrong impression.  Try something
like:

        :vimgrep notaword $VIMRUNTIME/**/*.vim

The .vim files are relatively small.

I tried doing a bit of profiling, but it gets confused by the loops and
reports bogus results.

-- 
Zen Microsystems: we're the om in .commmmmmmmm

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Reply via email to