I've been using ntemacs 20.x happily since 20.3, iirc, and have been
sticking with 20.7 for a while, mostly out of inertia.
I'm now trying to switch to 22.2 and I've run into a problem that
pretty much prevents me from switching.
I often work from home over VPN with files on remote drives at the
office. The link is fast, so it's reasonably comfortable. emacs20
takes maybe a second or two maximum to save a file or show filename
completion list (faster than it used to be on a uVAX, so I don't mind
:)
emacs22 OTOH is *extremely* slow when it comes to filename completeion
for remote drives. It takes emacs22 some 10 to 30 seconds to print
"Making completion list..." and another dozen or two to actually come
up with the completion list.
Interestingly, when I'm actually saving a file, emacs22 saves it quite
fast, just like emacs20. It's completion that is excruciatingly slow.
The set of customizations I have is ~the same in both emacs20 and
emacs22 and starting emacs22 without loading ~/.emacs doesn't change
anything - same extremely long delay for filename completion.
Completion in emacs20 launched alongside is snappy. Using native file
dialog in emacs22 is also fast, so I'm pretty much convinced the
problem is somewhere in read-file-name.
I've traced emacs20 and emacs22 using SysInternals' File Monitor and I
see the following.
Emacs20 does for C-x C-f p:/ <TAB>
OPEN P:\ SUCCESS Options: Open Directory Access: 00100001
QUERY INFO P:\ SUCCESS FileNameInformation
QUERY INFO P:\ SUCCESS FileFsVolumeInformation
QUERY INFO P:\ SUCCESS FileFsAttributeInformation
CLOSE P:\ SUCCESS
OPEN P:\ SUCCESS Options: Open Directory Access: 00100001
DIRECTORY P:\ SUCCESS FileBothDirectoryInformation: *
OPEN P:\ SUCCESS Options: Open Directory Access: 00100001
DIRECTORY P:\ SUCCESS FileBothDirectoryInformation: work
CLOSE P:\ SUCCESS
DIRECTORY P:\ SUCCESS FileBothDirectoryInformation
OPEN P:\ SUCCESS Options: Open Directory Access: 00100001
DIRECTORY P:\ SUCCESS FileBothDirectoryInformation: WINDOWS
CLOSE P:\ SUCCESS
OPEN P:\ SUCCESS Options: Open Directory Access: 00100001
DIRECTORY P:\ SUCCESS FileBothDirectoryInformation: tmp
CLOSE P:\ SUCCESS
[...etc, completing under 2 secs...]
While emacs22 does:
OPEN P:\ SUCCESS Options: Open Directory Access: 00100001
QUERY INFO P:\ SUCCESS FileNameInformation
QUERY INFO P:\ SUCCESS FileFsVolumeInformation
QUERY INFO P:\ SUCCESS FileFsAttributeInformation
CLOSE P:\ SUCCESS
OPEN P:\ SUCCESS Options: Open Directory Access: 00100001
DIRECTORY P:\ SUCCESS FileBothDirectoryInformation: *
OPEN P:\work SUCCESS Options: Open Access: 00100080
QUERY INFO P:\work BUFFER OVERFLOW FileFsVolumeInformation
QUERY INFO P:\work BUFFER OVERFLOW FileAllInformation
CLOSE P:\work SUCCESS
OPEN P:\work SUCCESS Options: Open Access: 00100080
QUERY INFO P:\work BUFFER OVERFLOW FileFsVolumeInformation
QUERY INFO P:\work BUFFER OVERFLOW FileAllInformation
CLOSE P:\work SUCCESS
DIRECTORY P:\ SUCCESS FileBothDirectoryInformation
OPEN P:\WINDOWS SUCCESS Options: Open Access: 00100080
QUERY INFO P:\WINDOWS BUFFER OVERFLOW FileFsVolumeInformation
QUERY INFO P:\WINDOWS BUFFER OVERFLOW FileAllInformation
CLOSE P:\WINDOWS SUCCESS
OPEN P:\WINDOWS SUCCESS Options: Open Access: 00100080
QUERY INFO P:\WINDOWS BUFFER OVERFLOW FileFsVolumeInformation
QUERY INFO P:\WINDOWS BUFFER OVERFLOW FileAllInformation
CLOSE P:\WINDOWS SUCCESS
OPEN P:\tmp SUCCESS Options: Open Access: 00100080
QUERY INFO P:\tmp BUFFER OVERFLOW FileFsVolumeInformation
QUERY INFO P:\tmp BUFFER OVERFLOW FileAllInformation
CLOSE P:\tmp SUCCESS
OPEN P:\tmp SUCCESS Options: Open Access: 00100080
QUERY INFO P:\tmp BUFFER OVERFLOW FileFsVolumeInformation
QUERY INFO P:\tmp BUFFER OVERFLOW FileAllInformation
CLOSE P:\tmp SUCCESS
[...etc, taking about 22 secs...]
So with all those extra queries emacs22 only chugs along at few files
per second.
I've checked emacs21.3 and it's as fast as emacs20 and the File
Monitor log is similar to emacs20 too.
I've looked into emacs22 sources and I don't see radical diffs from
emacs-21.4a sources for dired.c. I wonder if something was changed in
mingw stat emulation maybe.
Any help is appreciated.
SY, Uwe
--
address@hidden | Zu Grunde kommen
http://snark.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen