emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CVS Emacs on Windows XP takes 60 seconds to start


From: Eli Zaretskii
Subject: Re: CVS Emacs on Windows XP takes 60 seconds to start
Date: Wed, 03 Sep 2008 21:24:18 +0300

> From: Stefan Monnier <address@hidden>
> Cc: Francis Litterio <address@hidden>, address@hidden
> Date: Wed, 03 Sep 2008 10:30:24 -0400
> 
> > Beyond that, I intend to make changes in the code such that the file
> > security information is requested only when the caller of `stat'
> > really needs that.  The absolute majority of `stat' calls during
> > startup come from functions like `file-exists-p' and `load' (via
> > `openp') that only need to know if the file exists and is a
> > directory.  I want to modify code so that Emacs doesn't even try to
> > call lookup_account_sid on behalf of these callers.  This should bring
> > down the startup time even for situations such as yours, where a
> > firewall blocks access to LDAP.
> 
> Making it lazier is probably a good idea, but if the info will
> eventually be needed anyway, maybe we should also eagerly featch this
> info (asynchronously).  After all, even a 10s delay is quite noticeable.

The problem is that most callers of `stat' don't need most of the info
in `struct stat'.  This is a system call on Posix platforms, and it is
very fast, so Emacs calls it indiscriminately.  A much better way
would be to abstract several popular uses of `stat' ("does the file
exist?", "is the file executable?", etc.), and then implement that in
the most efficient way on every supported platform.  But I guess such
refactoring will have to wait for some rainy day.

The only Emacs primitives that _really_ need all of the info in
`struct stat' are `file-attributes' and `directory-files-and-attributes'.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]