Emacs 23.1.50.1在Windows XP上以6-8秒的频率挂起

时间:2010-01-05 16:14:42

标签: windows emacs installation

我在我的Windows XP机器上运行EmacsW32 23.1.50.1 emacs。它会随机挂起5到8秒,非常令人沮丧。

任何人都有解决方案吗?

我甚至尝试过使用来自gnu ftp网站的emacs win32二进制文件(23.1),并且还会挂起几秒钟。

这里有一些值得注意的processmonitor记录

10:56:59.9888359 PM CreateFile C:\ usr \ spool \ mail \ 路径未找到所需访问:读取数据/列表目录,同步,处置:打开,选项:目录,同步IO非警报,属性:不适用,ShareMode:读取,写入,分配大小:不适用

10:57:55.5073038 PM QueryAllInformationFile C:\ emacs.emacs.d \ auto-save-list BUFFER OVERFLOW CreationTime:8/27/2009 12:51 :26 PM,LastAccessTime:1/5/2010 10:54:40 PM,LastWriteTime:1/5/2010 10:08:15 PM,ChangeTime:1/5/2010 10:08:15 PM,FileAttributes:D, AllocationSize:0,EndOfFile:0,NumberOfLinks:1,DeletePending:False,Directory:True,IndexNumber:0x1000000001f702,EaSize:0,Access:Read Attributes,Synchronize,Position:0,Mode:Synchronous IO Non-Alert,AlignmentRequirement:Word

7 个答案:

答案 0 :(得分:25)

我在WinXP上使用EmacsW32 23.1.50时遇到了完全相同的问题。我做出的一项改进(无论如何对我有所改进)是将以下内容添加到我的.emacs文件中:

; try to improve slow performance on windows.
(setq w32-get-true-file-attributes nil)

似乎这个变量最近被更改为默认为“true”,并且已知会导致文件访问的一些减速问题。我现在仍然会有一些随机的挂起(可能是由于我的.emacs自定义)但现在好多了。

答案 1 :(得分:19)

请尝试在“服务”控制面板中停止Netlogon服务。这解决了我的问题。请参阅优秀的文章http://www.hydrus.org.uk/journal/emacs-netlogon.html,让我免于痛苦。

这仅适用于以下小组(但仍在增加?)用户:

  • 使用corp issue laptop
  • 使用Windows 7
  • 将emacs用于R编辑器
  • 突然看到她的emacs工作很慢

答案 2 :(得分:5)

我遇到了类似的问题,并将其追溯到Windows上的网络超时。在我的特定情况下,它是由于ido.el,它保存了目录内容的缓存列表。在启动时,ido试图检查缓存的目录,其中包括我的家庭网络和我的工作网络上的网络共享 - 总是有一些不存在的主机,无论我在哪个网络上。

因为我的问题源于ido(有点),我的解决方案是将ido-max-dir-file-cache设置为0(通过customize-variable或init.el),然后退出Emacs,删除〜 /.emacs.d/.ido.last,然后重新启动Emacs。基于我在另一个线程中看到的内容,在尝试删除.ido.last之前确保关闭所有Emacs实例非常重要。可能还有其他需要更改的ido变量,但到目前为止,这个解决方案对我有用。

答案 3 :(得分:4)

如果没有一些调试输出,很难说是什么导致延迟。

由于延迟通常是由IO操作超时引起的,因此我建议运行Process Monitor以查看Emacs在挂起时正在做什么。

答案 4 :(得分:3)

答案 5 :(得分:2)

禁用全局自动恢复模式后,系统执行的I / O要少得多。对我来说,这似乎解决了这个问题。

答案 6 :(得分:1)

这与禁用netlogon答案有关。事实证明,关闭netlogon会给我带来网络驱动器的问题,所以禁用它是一件麻烦事。我发现很长一段时间我把我的dns提供给google的公共dns。这在公司领域是一个非常糟糕的主意。我把它切换回自动检测dns,问题就消失了。

相关问题