46076Re: Vim 7 performance notes
- Feb 8, 2007Alexei Alexandrov wrote:
> I've also noticed that Vim spends somewhat significant time on startupI would not assume it's similar until there is proof.
> loading spell files (I have 2 languages in my .vimrc: set
> spelllang=en,ru). The time is mostly spent in
> EnterCriticalSection/LeaveCriticalSection with getc() upper the stack.
> The reason for this is CRT blocking since the runtime is
> multithreaded. It's Windows, but on Linux it should be similar.
> As far as I understand, Vim doesn't access the spell file fromThis sounds like a bug in getc(). It should know that only one thread
> multiple threads. Thus, the situation can be improved a lot: on Linux
> by using getc_unlocked. On Windows, starting VS 2005 there is a
> function _getc_nolock. Before VS 2005 this function can be emulated by
> #define _getc_nolock(_stream) (--(_stream)->_cnt >= 0 ? \
> 0xff & *(_stream)->_ptr++ : _filbuf(_stream))
> By switching to non-blocking getc() in spell.c I was able to reduce
> Vim startup time from about 0.9 seconds to about 0.7 seconds.
is reading the file and skip the locking. I don't think we should fix
library bugs in Vim, unless it's crashing or another significant problem.
Perhaps you can already get a big increase by not compiling for
debugging? With MSVC this usually has a big impact. Also largely
defeats profiling with debugging enabled.
From "know your smileys":
:-E Has major dental problems
/// Bram Moolenaar -- Bram@... -- 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 ///
- << Previous post in topic Next post in topic >>